Many years ago, one Unix interviewer told me that Bourne shell should be used for best compatibility across different UNIXs. That certainly is still true today. For example, only Bourne shell (sh) is accepted in init scripts for Solaris. Here is one explanation that I heard so far: During the bootstrap process, /usr isn’t mounted. Therefore shells such as Bash (/usr/bin/bash) won’t work. Bourne shell (/sbin/sh) will work. So be aware of this difference when you work across different UNIXs and Bourne shell is a good bet for compatibility.
Special thanks to Hans N. for the explanation.