Why do people say both "¿qué hora son?" and "¿qué hora es?" to ask what time it is?
"¿Qué hora es?" and "¿qué hora son?" both mean the same thing (what time is it), but "¿qué hora es?" is the more polite way and is recommended. "¿Qué hora son?" is somewhat colloquial and used in some countries more than others, and in any case isn't very polite.
To answer, you can use both the singular and plural.
If it's one o'clock, this answer is always in singular, "es la 1 de la tarde" or "es la 1 de la mañana".
In other cases, your answer must be in plural, for example, "son las 3 de la tarde".