Why /bin/sh ??
As others have pointed out you get to decide what that actually means :)
(Or your distro does for you.)
For bash at least it has a particular meaning...
From the bash man page:
" If bash is invoked with the name sh, it tries to mimic the
startup behavior of historical versions of sh as closely as
possible, while conforming to the POSIX standard as well. "
So if you /bin/sh points to /bin/bash then you get that behaviour.
#!/bin/bash
gives you "standard" bash (and its "bashisms")
of course /bin/sh may actually be a link to say /bin/dash or ksh or some other "shell".
The bash man page is huge but this particular info is only...145 lines in :)
There are a couple of good introductions about:
The Advanced Bash Scripting Guide is excellent.
http://tldp.org/LDP/abs/html/
If your on Debian / Ubuntu (or other derivatives) :
abs-guide - The Advanced Bash-Scripting Guide
debian-reference-en -> Debian system administration guide, English original
e.g.
apt-get install abs-guide
FYI dash: (edited down to description)
$ apt-cache show dash
says:
Description-en: POSIX-compliant shell The Debian Almquist Shell
(dash) is a POSIX-compliant shell derived from ash. .
Since it executes scripts faster than bash,
and has fewer library dependencies
(making it more robust against software or hardware failures),
it is used as the default system shell on Debian systems.
Homepage:
http://gondor.apana.org.au/~herbert/dash/