Because Nix has dogshit UX and the team seem to be completely oblivious to it regardless of how many times it's brought up.
$ nix-shell -p nodejs_20 [nix-shell:~]$ node --version v20.18.1
Well, "dogshit UX" isn't exactly actionable, is it?