Porque estás evaluando la variable del switch ($numDatos) contra el valor del case ($numDatos > 1). $numDatos == 0 y $numDatos > 1 == false. La comparación que hace es no estricta así que 0 == false es true y caes en el primer caso.
Reexplico, switch-case lo que hace es evaluar lo que pasas como parámetro al switch contra cada uno de los case, en tu código lo que chequea es $numDatos == ($numDatos > 1) y si es truthy (porque la evaluación no es estricta así que no tiene por qué ser true o false, por ejemplo 0 vale como false) se ejecuta el código del case.
Lo podés reescribir así: