Вопрос скорее должен звучать не "почему так сложилось?", а "как убедиться, что одни существительные ― одушевлённые, а другие ― неодушевлённые?".
Их формы надо сравнить в винительном падеже, в единственном и множественном числе.
Вижу: народ / народы, стадо / стада, племя / племена (Вин. пад. совпадает с Им. пад., значит, это неодушевлённые существительные).
Вижу: куклу / кукол, снеговика / снеговиков, домового / домовых, покойника / покойников (Вин. пад. совпадает с Род. пад., значит, это одушевлённые существительные).
Пример.
Как определить одушевлённость / неодушевлённость похожих по смыслу существительных "мертвец" и "труп"?
Вин. пад.: видеть мертвеца (совпадение с формой Род. пад.), видеть труп (совпадение с формой Им. пад.). Первое существительное одушевлённое, второе ― неодушевлённое.