There's a primordial difference. Bash are not executable files per se, they are interpreted by bash, in a similar sense that odt files are interpreted by your word processor. So you can read bytes and pipe them into bash (or any other program, as long as it can use a pipe for input).
Binary files are interpreted by your kernel directly, as long as they are a.out or elf files. So you would need to pipe the binary into the kernel elf loader. If could be theoretically possible to read the bytes from the web and send them directly to a device node that would consume them into the loader. This would illustrate the idea (but it's just an sci-fi example, don't dare to try it):
Code:
wget -O - -q http://wahtever | cat > /dev/elf_loader
# or less graphically, but the same
wget -O - -q http://whatever > /dev/elf_loader
However I have no idea how could that be done, if at all. With a bit of kernel hacking it should be possible, I guess