Sim, o emulador de terminal e o shell são dois programas diferentes. Como você sabe, um exemplo da diferença é que o lançamento de uma janela de terminal pode executar shells diferentes dependendo do que você configurou (bash, tcsh, ksh, ash, até python!).
Outra diferença é que existem mais emuladores de terminal do que apenas o padrão: gnome-terminal, diversas variedades de xterm, konsole (para o KDE), etc. (veja: link ). Qualquer shell pode ser executado em qualquer um desses emuladores de terminal, sem muita dificuldade.
Uma terceira diferença é que, além de executar comandos shell, você também pode iniciar certos aplicativos interativos no emulador de terminal, e eles serão executados na mesma janela (e ainda contando com o mesmo programa emulador de terminal para manipular os gráficos reais) , como o editor de texto vim, o RPG nethack e outros. Se você quiser, pode configurar um perfil no emulador de terminal para iniciar o nethack, digamos, automaticamente quando abrir uma nova guia; nenhum shell envolvido, mas o emulador de terminal ainda é o mesmo programa.
A quarta diferença é que você pode realizar logins remotos, usando um programa como o ssh, dentro de uma janela de terminal. Neste caso, seu shell (ou qualquer programa que você rode remotamente) está rodando em outro computador, e o programa ssh o conecta ao programa emulador de terminal local rodando na sua máquina que lida com gráficos.