O sinalizador noexec será aplicado adequadamente aos scripts, porque esse seria o comportamento "esperado".
No entanto, definir noexec apenas impede que as pessoas não saibam o suficiente sobre o que estão fazendo. Quando você executa sh foo.sh , na verdade você está executando sh de seu local padrão (provavelmente /bin ), o que não está em um sistema de arquivos montado com noexec .
Você pode até mesmo obter noexec para arquivos binários regulares invocando ld diretamente.
cp /bin/bash $HOME
/lib/ld-2.7.so $HOME/bash
Isso executará o bash, independentemente de estar ou não em um sistema de arquivos montado com noexec .