Não consegui determinar porque recebi a mensagem de erro
sh: 1: ls -l: not found
mas conseguiu alcançar meu objetivo. O comando que funciona (que é uma versão simplificada do que eu quero) é:
gnome-terminal -- /bin/bash -c 'cd .; ls -l; /bin/bash'
Eu tomei a abordagem de que eu só estava rodando isso no Ubuntu e por isso era "seguro" trocar o emulador x-terminal pelo gnome-terminal e $ SHELL pelo bash.