Почему не иначе?

ГЕРОЙ.

Откуда это слово, понятно: по-гречески богатырь, смельчак назывался "герое". А вот почему из этого "-ос" у нас получилось "-ой"? Правда, мы взяли слово не прямо у греков, а у французов, но и у них герой - "эро" ("heros"); никакого "й" и тут нет. Можно думать, что оно появилось в русской речи под влиянием французского "heroine" - "героиня" или "heroїque" - "героический".