The real world security issues that companies face are things like:
- users that re-use tiny passwords written on post-it note that's attached to their monitor
- regulated industries that don't allow them to actually lock a user out, which causes leaky social engineering flows for their help centers
- users that constantly forget their passwords, and have terrible forgotten password questions/answers
- passwords they share with a friend/partner, that they then have a falling out with
The reason SMS 2FA is popular, is because the average use case is that the user's (reused and/or weak) password was captured somewhere, and this protects the user from simple attacks to their account where the password is known. It's just like the pin code for most modern smartphones: just secure enough to keep the average person out if their phone is lost or stolen"But Joe, having a more secure system isn't that much harder on the user and is infinitely more secure". I promise you, it is that much harder. Most users can barely understand/handle SMS 2FA. Remember, we have to force users to not use trivially simple passwords like 'password'. Shoot, companies like AOL still derive monthly subscription fees because it's too hard for people to figure out how to change email providers