It's debatable, but the usual reasons are:
1) Split account selection from account authentication, enabling different mechanisms to be used for either
2) Ensure there is one and only one field on offer, stopping people slinging usernames and/or passwords into insecure fields
3) Allows for arbitrary intermediate steps to be injected more cleanly into the process. This is particularly important for complex SAML setups where you might be bounced to an external (i.e. not microsoft) 2FA page depending on which identity you provide
Or put in other words, step 1 might not always be "enter your username" and step 2 might not always be "enter your password", so it makes sense to have a common experience that supports all workflows rather than a single workflow that you modify by exception, breaking user expectations.
Google do the same thing.