A explicação mais provável é Patrick : o sistema de arquivos é montado com a opção noexec , portanto os bits de permissão de execução em todos os arquivos são ignorados, e você não pode executar diretamente nenhum programa residente neste sistema de arquivos. Observe que a opção noexec mount está implícita na opção user em /etc/fstab (supostamente por motivos de segurança, embora, ao contrário das opções nodev e nosuid , noexec não forneça nenhuma segurança) . Se você usa user e deseja ter arquivos executáveis, use user,exec .
Também é possível que a linha shebang do script aponte para um arquivo que existe, mas isn ' t executável - nesse caso, a mensagem de erro se refere ao script , embora o erro esteja no interpretador. No entanto, é improvável que o shebang aponte para um arquivo existente errado (se o erro não for encontrado, uma declaração pendente seria mais plausível).