Porque COUNT() es una función agrupada, y si no pones un criterio de agrupamiento, devolverá un sólo registro.
En tu caso debería devolver dos, uno por cada SELECT, pero como el UNION descarta las duplicaciones en los registros, si ambos SELECT devolviesen el mismo valor es probable que MySQL esté descartando uno de ellos.
Prueba así:
O bien: