Anyone noticed how the GN tool used to build Fuchsia looks like someone really wanted to use Bazel but for whatever reason they had to use Ninja?

Historical reasons - when Chromium was first open sourced, they really wanted to use Blaze, but that wasn't open sourced yet, so they built gn. Bazel (an open source subset of Blaze) wasn't a thing until much later.

Fuchsia is really close to the Chromium team and inherited gn and most of the supporting repo management and build tooling.

gn is less strict than Blaze and Google probably doesn't want to maintain both Bazel and gn forever, so it stands to reason that gn will eventually be replaced with Bazel. That will be a really large effort so it's probably not happening anytime soon and will take a while.

Android, which uses yet another home grown Blaze-alike build tool - Soong - is already in the process of migrating to Bazel. Moving from Soong to Bazel is probably much easier than going from Ninja/Make to Soong due to how conceptually similar those are.

How do the build requirements for bazel and fuschia compare? Last I checked, bazel required python and a JVM and that seems like a lot for bootstrapping an OS.

Bazel's single-binary distribution brings its own JVM, it has less dependencies than gn.

Most people use Bazelisk: https://github.com/bazelbuild/bazelisk