N’arrêtez jamais d’apprendre !
On dit « des bœufs » car c’est une exception historique de la langue française liée à l’évolution du mot latin.
Le mot « bœuf » vient du latin bos (bovis au pluriel). En français, la plupart des mots en -eu prennent un -x au pluriel (comme « feux » ou « jeux »), mais « bœuf » fait partie des rares exceptions qui prennent un -s (« bœufs »).
Cette forme remonte au Moyen Âge, où le pluriel « bœus » a été conservé à l’écrit, puis a évolué en « bœufs » pour s’aligner sur la majorité des mots français. L’orthographe a gardé le -s même si la prononciation reste [bø] au pluriel (le « f » et le « s » sont muets).
C’est donc une survivance de l’histoire du mot, et non une règle logique !
Le mot « bœuf » est aussi à l’origine de l’expression « avoir du bœuf » pour désigner quelqu’un de costaud… mais il n’a jamais eu de « bœux » dans les campagnes !