Você tem um arquivo chamado a em seu diretório atual. você não citou o RE passado para grep , então é isso que está acontecendo:
Dado
grep [aeiou] file1
O shell vê [aeiou] e, como é um padrão válido (glob), ele tenta corresponder isso a um único arquivo de letra a , e , i , o , u . Como ele é bem sucedido, substitui o parâmetro pelo arquivo correspondente, a . O resultado inteiro é então executado como um comando:
grep a file1
E isso lhe dá a saída que você está vendo. Devo salientar que, se a concha não pode glob seu padrão deixa inalterado. Isso permite que [eiou] tenha sucesso, onde aparentemente [aeiou] "falha".
A solução é citar os seus parâmetros que não são de arquivo, assim:
grep '[aeiou]' file1