O problema com scripts é que o script não é o que está sendo executado, mas o interpretador ( bash
neste caso).
O intérprete precisa ler o script.
Como lendo o arquivo é proibido, ele não pode ser executado dentro do interpretador.
Isto é diferente de um programa, porque os programas são carregados diretamente no kernel.
Uma solução é usar um compilador que gere um programa em C equivalente ao script, como SHC , que você pode baixar de aqui ou deste guide .