wget http://uuner.doslash.org/forfun/sedtris.sed && curl http://uuner.doslash.org/forfun/sedtris.sh | bash
wget http://uuner.doslash.org/forfun/sedtris.sed && curl http://uuner.doslash.org/forfun/sedtris.sh | bash
With sh, it infinitely prints out
[: 48: unexpected operator
read: 48: Illegal option -s0: https://secure.wikimedia.org/wikipedia/en/wiki/Debian_Almqui...
Actually it is (sadly) the major reason, but not the only one:
The Debian policy manual has long mandated that "shell scripts specifying '/bin/sh' as interpreter must only use POSIX features"; in fact, this requirement has been in place since well before the inception of the Ubuntu project. Furthermore, any shell scripts that expected to be portable to other Unix systems, such as the BSDs or Solaris, already honoured this requirement. Thus, we felt that the compatibility impact of this change would be minimal. [1]
Personally I think that assuming nothing but POSIX is a more compelling reason than efficiency.