A expansão de chave (isto é, {this,that,etc} ) não é um arquivo glob, o que significa que ele se expande para todos os valores, haja ou não um arquivo com esse nome. Assim, dir{,_a[12]}/**/*.c expande para os dois padrões de glob dir/**/*.c e dir_a[12]/**/*.c . O segundo expande para o único arquivo correspondente, dir_a1/src/file.c , mas o primeiro não corresponde a nada e, portanto, é deixado sozinho (e, portanto, é reproduzido literalmente).
Se você não quiser passar globs sem correspondência, defina a opção nullglob shell, via shopt -s nullglob . Mas esteja ciente de que isso fará com que outras coisas ajam de maneiras estranhas, como ls /etc/*.nosuchextension listando o conteúdo do diretório atual. Outra maneira de lidar com globs incomparáveis é a opção failglob shell.