Hola,
que yo sepa no se puede poner distinct cuando agrupas. Además te tendría que dar error porque en campo nombre no sabe de qué tabla cogerlo. Deberás especificar la tabla.
Quieres que la consulta te saque tres campos y sólo indicas dos.
Por otro lado, yo haría el from de la tabla de medicos, no de la de hospitales.
En resumidas cuentas.
Código SQL
[-]
select H.nombre, M.especialidad, M.count(1) as total
from medicos M inner join hospital H on (H.cod_hospital = M.cod_hospital)
group by H.nombre
y la recomendación de estudiar un buen manual de SQL básico.
Un saludo