Pour faire simple, les mots en -als sont, règle générale, plus récents que les mots en -aux. (Grevisse, 2007, Le Bon Usage, 14e ed, §§517,553)
Pour être exact, ces mots sont souvent postérieur à changement phonétique en français qui a transformé en /ou/ (pour être vraiment exact, en /w/) la consonne /l/ lorsqu'elle précédait une autre consonne(1). On retrouve des trace de cette alternance dans d'autres mots:
- chevelu/cheveu (à l'origine sigulier chevel)
- sol/sou (nom de monnaie), col/cou
- châtel/château
- matériau (originellement matérial, le singulier moderne reconstruit sur le pluriel)
- universaux (construit sur un singulier universal)
En pratique, la situation est plus compliquées. Ainsi, des mots en -als ont eu un pluriel en -aux (ce fut le cas de naval, fatal, natal et bal), et l'inverse s'est également produit (cas de madrigal et piédestal).
De fait, de nombreux adjectifs dont les grammairiens et dictionnaires insistaient autrefois qu'ils avaient un pluriel en -als, voire (!) qu'on devait éviter de les employer au masculin pluriel,(2) semblent vouloir passer de -als à -aux: Grevisse cite en particulier glacial, tribal, marial et final...
- Le -x servait à l'origine d’abréviation à la séquence us, et a été erronément préservé même une fois le u rétabli.
- Une exhortation qui ne fait souvent que révéler une forte hésitation dans l'usage. Je décèle (personnellement) le même phénomène dans l'insistance des grammaires à affirmer que les verbes en -traire sont défectifs. Si c'est défendable pour traire lui-même, divers auteurs n'ont pas hésité à reconstruire un passé simple pour les autres verbes de ce groupe, d'usage beaucoup plus fréquent.