Quando você faz, ls *o *está sendo expandido antes de ser passado para ls. Ou seja, se temos três arquivos ( a, be c) em um diretório ls *está realmente em execução ls a b c.
Quando o Bash não pode se expandir, ele passa pela cadeia bruta¹. É por isso que você vê os curingas no erro, junto com uma mensagem não encontrada. lstentou mostrar a listagem de um arquivo chamado literalmente *.bash*.
Então, por que isso não se expandiu? Bem, por globbing padrão (como essa expansão de curinga é chamada) não retornará arquivos ocultos. Você pode alterar isso com shopt -s dotglob(que não persistirá, a menos que você o cole no seu .bashrc- ele pode ser desativado por padrão por um bom motivo, portanto, tenha cuidado) - aqui está uma demonstração rápida:
$ ls *.bash*
ls: cannot access *.bash*: No such file or directory
$ shopt -s dotglob
$ ls *.bash*
.bash_aliases .bash_history .bash_logout .bashrc .bashrc.save
A exceção a isso é - como você já mostrou - quando já declarou explicitamente que os arquivos serão ocultados com um padrão semelhante .bash*. Ele simplesmente substitui a dotglobconfiguração padrão :
$ shopt -u dotglob # unset dotglob
$ ls .bash*
.bash_aliases .bash_history .bash_logout .bashrc .bashrc.save
De qualquer forma, além dessa peculiaridade, espero que isso ajude você a entender o que está acontecendo sob a superfície.
Há outras shoptbandeiras que alteram como englobamento obras: extglob, failglob, globstar, nocaseglobe nullglob. Eles e uma série de outras shoptbandeiras são documentados como parte do manual do Bash .
Da mesma forma, a página Correspondência de padrões deve proporcionar uma boa leitura.
¹ A menos que failglobou nullglobestão definidos.