Existem dois erros nos seus comandos.
Seu primeiro erro é que seu arquivo não está em um formato executável correto. A primeira linha de um script de shell deve começar com #! . Se não começar com esses caracteres, não é um script de shell.
Alguns shells possuem soluções alternativas para esses scripts shell incorretamente formatados. Mas essas soluções alternativas só funcionam quando o script é iniciado a partir de um shell e não quando o script é iniciado a partir de outro programa. Além disso, shells diferentes têm soluções diferentes para scripts de shell formatados incorretamente.
Tudo isso significa confiar nessas soluções resultará em comportamento imprevisível e você deve sempre incluir a linha #! . Por exemplo, você poderia ter digitado:
echo '#!/bin/sh' > hello
echo 'say hello' >> hello
O outro erro é que você não forneceu um caminho para o script ao tentar executá-lo. Você deveria ter digitado:
./hello
Quando você digitar apenas hello , o shell pesquisará o PATH do comando. Por motivos de segurança, . não está em PATH . Se você precisa criar regularmente scripts de shell, é uma boa ideia criar um diretório para esses scripts de shell e colocar esse diretório em PATH . Eu pessoalmente uso ~/bin para scripts de shell e ocasionalmente para pequenos programas compilados.