Como o shell expande a A*.txtpeça para vários caminhos antes de ser passada para o comando que está sendo chamado ( cpneste caso).
Isso significa que, no primeiro caso, se você tiver arquivos com o nome A1.txt, A2.txt, A3.txt e A4.txt e os diretórios A1, A2, A3 e A4, cada um contendo output.txt, ele se expandirá para algo como :
for X in A1.txt A2.txt A3.txt A4.txt ; do cp $X/output.txt output/$X.txt ; done
e no segundo caso, ele se expande para:
cp A1/output.txt A2/output.txt A3/output.txt A4/output.txt output/A*.txt
onde a output/A*.txtpeça pode ou não ser expandida, dependendo da existência de algo no outputdiretório que corresponda ao glob. Se isso acontecer, fica ainda pior, como:
cp A1/output.txt A2/output.txt A3/output.txt A4/output.txt output/A8.txt output/A9.txt
Como cpquando vários arquivos de origem desejam um diretório de destino no final, ele não sabe como lidar com isso e simplesmente levanta as mãos e gera um erro.