A diferença é que o xterm é o emulador de terminal padrão do X Window System , enquanto o gnome-terminal é o padrão emulador de terminal do projeto GNOME .
Eles são semelhantes porque ambos são emuladores de terminal .
Para mais informações sobre por que os terminais precisam ser emulados e o que é um terminal "real" ou "virtual", leia esta pergunta e resposta: link .
Um terminal não é um shell . Para aprender sobre a diferença entre um terminal e um shell, leia esta questão e responda: .