Alguém mais apontou, mas depois removeu a resposta, então vou adicioná-la novamente.
A razão deste comando em particular falhar é que o launcher não usa um shell, o que significa que o VLC está literalmente tentando carregar um arquivo chamado *, ao invés de colocar a estrela em um arquivo lista.
Uma solução alternativa é chamar um shell, como elmicha apontou em um comentário. sh -c "vlc ~/Music/* -Z"
faria isso. Isso, no entanto, falha devido a um bug, novamente, veja o comentário elmichas.
Neste caso particular, como o VLC irá percorrer recursivamente diretórios, o mesmo resultado pode ser alcançado com vlc ~/Music
, que funciona bem sem um shell, e é muito mais simples.