Sur de petit tableaux la différence ne devrait pas être énorme, mais sur de plus gros volumes ça peut jouer.
Dans le cas présent, si la fonctionnalité attendue est l'apport d'une réponse sous forme d'un booléen, l'intérêt majeur de la comparaison via une boucle c'est qu'elle va pouvoir répondre non à la première différence trouvé (différence de longueur des tableaux ou différence de valeur à l'index n) et s'arrêter là.
A l'inverse la méthode avec le hash pourra être intéressante en cas d'appel "distant" nécessitant le transfert des données sur un lien lent : si le calcul ne peut être déporté au plus prêt du stockage, transférer un hash peut alors avoir du sens.
/*
coq
MVP Visual C#
CoqBlog*/