Ao usar set da maneira como você faz em um shell semelhante a sh- :
set noglob on
você realmente modifica $@ substituindo os argumentos dados na linha de comando por noglob e on (como se você tivesse chamado o script com sh a.sh noglob on ).
Para definir a opção de shell noglob , use
set -o noglob
Nem sh nem ksh tem uma opção de shell chamada filec , até onde eu sei.
Observe que, se você invocar o script com um intérprete explícito como sh , a #! -line será ignorada.
Como seu script se parece com um script tcsh ou csh (a sintaxe set é absolutamente correta e esses shells também têm uma opção filec shell, mas a variável $@ não está em csh , tanto quanto eu sei):
Se for um script csh ou tcsh que você está escrevendo, certifique-se de invocar o script com csh ou tcsh ou, se o script for executável e chamado sem um intérprete explícito, que a linha #! aponta para o apropriado destes dois.
Resumindo, certifique-se de saber em que idioma você está escrevendo seu script e use o interpretador correto.