Sistemas de arquivos são frequentemente montados noexec,nosuid por padrão para aumentar um pouco a segurança. Portanto, mesmo que você veja o bit executável no conjunto de arquivos, o kernel se recusará a executá-lo. Ao chamá-lo na forma de interpreter path/to/script , você está solicitando que o sistema execute interpreter , que por sua vez recebe path/to/script como um argumento e analisa-o ignorando a restrição imposta pelo sistema de arquivos (você pode conseguir o mesmo efeito com executáveis compilados com: /lib/ld-linux.so.1 path/to/executable ).
Assim, uma opção é mount -o exec ... . Você pode querer colocar a opção em /etc/fstab - geralmente substituindo a opção defaults por defaults,exec . No entanto, a menos que você realmente saiba o que está fazendo, eu aconselho contra isso.
Quanto aos detalhes BASH, acredito que bash os interprete mesmo quando estiver executando como sh . E você está definitivamente livre para invocá-lo como bash path/to/script .