Sim, zsh e bash se comportam de maneira diferente a esse respeito.
Em zsh , quando você diz " ubuntuone-* ", ele procura no diretório de trabalho atual por arquivos que começam com ubuntuone- - como não encontra nenhum, diz " no matches " e não é executado o comando.
bash adota uma abordagem diferente - também procura arquivos que iniciam com ubuntuone- no diretório de trabalho atual, mas, se não encontrar nenhum, diz a si mesmo: "Talvez o programa que estou invocando saiba como manipule o caractere curinga "e assim passa" ubuntuone-* "para sudo apt-get como um argumento literal.
Se você tivesse um arquivo em seu diretório de trabalho atual chamado ubuntuone-ffdjhjer , então o bash tentaria executar sudo apt-get remove --purge ubuntuone-ffdjhjer , o que provavelmente falharia.
Em zsh (e em bash ) você pode usar aspas simples para dizer a ele para não expandir o curinga, mas para transmiti-lo, como em:
sudo apt-get remove --purge 'ubuntuone-*'