Supondo que o script seja um script Bash (por exemplo, começa com #!/bin/bash ), então o autor está errado neste ponto. Quando você executa um script de shell diretamente, o kernel vê a linha #!/bin/bash no início e, em seguida, executa essa linha com o nome do arquivo do script como um parâmetro, ou seja, /bin/bash myscript.sh . Em outras palavras, o kernel está fazendo exatamente o que você faria para passá-lo para um shell explicitamente.
Agora, se o script começar com #!/bin/sh em vez de #!/bin/bash , haverá outra possibilidade. O Bash pode fornecer /bin/sh , mas não é necessário. Ele também prioriza recursos acima do tamanho ou da velocidade. Se um shell menor e mais rápido for seu /bin/sh , a execução do script diretamente usará esse shell mais rápido, e o script será executado mais rapidamente do que no Bash.
Isso acontece na prática com distribuições baseadas no Debian (por exemplo, Debian, Ubuntu, Mint). Eles tendem a usar um shell chamado dash para fornecer /bin/sh em vez do Bash, para tornar os scripts de inicialização mais rápidos.
Para ver o que sua distribuição faz, ls -l /bin/sh . É provavelmente um link simbólico para /bin/bash ou /bin/dash ou outro shell.