Da sua saída de where ng , está claro o que está acontecendo.
O Windows não suporta linhas shebang, portanto, o que você leu está correto. O que o Windows suporta é extensões de arquivo e você tem uma extensão executável disponível.
Você faz tem ng , mas não está sendo executado diretamente. ng.cmd é quase certamente um arquivo em lote que executa node ng .
Quando você executar ng , o Windows pesquisou o caminho para todos os formatos possíveis de arquivos executáveis ( exe , bat , cmd , etc) e executou o primeiro que correspondeu: ng.cmd .
Se você deseja executar seu script, será necessário executá-lo como um argumento para node , ou seja, node test ou criar um arquivo test.cmd que faça o mesmo.