Les deux se disent mais s'analysent grammaticalement de façon différente.
Personne n'a dit un mot. : le GN un mot est COD de dire. On pourrait avoir un autre GN à la place de un mot : une phrase, une parole, etc.
Personne n'a dit mot : mot est ici « complément de la négation ne1 ». L'explication historique de ce fait figure déjà sur FL dans l'excellente réponse de @Unfrancophone à l'occasion d'une autre question. J'en reproduis ici un passage extrait du Bon usage :
La forme atone ne, négation ordinaire dans la langue du moyen âge, a été de très bonne heure renforcée par des noms désignant une petite quantité, une petite étendue, une chose de valeur insignifiante : pas, point, mie, goutte, mot2, noix, pois, espi, dé, bouton, denier, pomme, grain, cive, fétu, ail, etc. [...] Les plus fréquents de ces compléments ont perdu leur valeur propre pour devenir de simples auxiliaires de la négation.
La question Négation avec « point » sur FL aborde aussi le même sujet.
En ce qui concerne mot, le Bon usage précise que :
Mot, s'emploie après dire, répondre, sonner, souffler : Qui ne dit MOT consent. Il ne souffle MOT.
On pourra facilement rapprocher l'expression ne dire mot de n’y voir goutte, où « goutte » joue le même rôle que « mot » après les verbes voir, entendre et comprendre. Il me semble que ne dire mot est d'un usage plus fréquent (donc un peu moins littéraire) que n'y voir goutte.
1 Expression employée dans Le bon usage dans le chapitre sur les adverbes de négation.
1 C'est moi qui souligne.