Is it possible to restrict my OpenSSH server to only listen to ssh.example.com?
AFAIK no.
Isso ocorre porque o cliente resolve ssh.example para um endereço IP antes de entrar em contato com o servidor e, diferentemente do HTTP, o protocolo SSH não possui cabeçalhos que especificam o nome do host do servidor.
Consequentemente, o servidor não tem idéia de qual nome do servidor foi fornecido ao cliente.
A chave do host do servidor é usada para associar um nome de host do servidor com suas credenciais, mas alguns clientes SSH simplesmente solicitam ao usuário que aceite a chave ou não. Isso não é (até onde eu sei) realmente um mecanismo para o servidor impor como ele é inicialmente identificado para o cliente.
Isso realmente não tem nada a ver com a escuta em 0.0.0.0, a menos que o servidor tenha dois endereços IP e você tenha configurado o DNS para resolver cada nome de host em um endereço IP separado (o que talvez você deva fazer para obter o que deseja)