Google has done something similar; they make it hard to use my preferred 2FA app ("Authenticator" for iPhone). In order to add it I had to pick a different thing, then add 2FA, then remove the other thing. And even with that, it still tries to get me to authenticate with one of their apps on one of my iThings, de-emphasizing the option to just put in my code.

Dunno why these companies are like this, is there a good-faith explanation? Maybe they have a lot of support problems with authenticator apps?

Because 3rd party 2FA apps are inherently untrustworthy. To Google, even Microsoft Authenticator is a security risk because to use it you have to give it the TOTP seed for your account. So Google (and Microsoft) would rather you use their solutions that let them push the prompt to you and ensure that it's a known device responding. It's still not a perfect solution, but it still is a more secure option.

hmm, Authenticator is open source (https://github.com/mattrubin/Authenticator). 2FA is also available in open source key manager program such as KeePass.

When it comes to 2FA, I would rather trust open source apps vs the ones made by Google/MS.