It makes a lot of sense. Your nc (check the actual binary, not the symlink) does not have the permission to do that because it does not have the CAP_NET_BIND_SERVICE bit set.
Sexy Staff asked to keep this thread on topic so you can split and put up this message where you want to. but this is too huge and embarrassing to ignore it... I have become accustomed to the exotic fauna of wise Win-like-dunces around many Linux distributions and I know that an immediate clarification can deter other dunces adding up to the commotion with wacky arguments, so here it is! 😂
Also to save staff from keeping a class on capabilities and kernel 😅, read here the 1st answer https://unix.stackexchange.com/questions/389879/how-to-set-capabilities-with-setcap-command and then check the man and the docs.
Set the bit and see that the user you mentioned in your example can run netcat listening to any port. Over and out.