On ne peut pas toujours traduire littéralement. En français, on utilise l'expression "il a peur," mais en anglais on dit "he is afraid." C'est la meme chose qu'avec l'expression "il a cinq ans" qu'on traduit par "he is five years old." Je ne peut pas te dire pourquoi, c'est juste comme ça.
Car "le chien" est bien défini, c'est ce chien qui lui fait peur, donc on utilise "the". Avec "a dog", le chien n'est pas vraiment précis, "il a peur d'un chien", celui ci ou celui là, on ne sais pas vraiment.