What's the difference between downloading and executing a binary, installing a package (apt-get, pip, gem, etc), and curl | sh which makes the later so bad?
A package is downloaded completely from the net, then checked for it's signature.
A network transmission is by orders of magnitude less safe with regards to corruption of the payload.