Another point that UX designers might make is that this solution necessarily takes users away from your site to complete login, and that can introduce a place for users to drop off. I'm not sure it's that significant, but I've heard it used as an argument.
Yes, but this affects your recovery attempts as well, today email is basically instantaneous for most people.
> this solution necessarily takes users away from your site to complete login
This is probably the biggest reason to avoid this solution, but I still like it over other options.
Usually these credentials are one-time usage.
This sounds like a solved problem, though I don't really know.
It's really no less secure than allowing someone to sign up with an email / password and let them in without first confirming their email address.
DigitalOcean's two-factor authentication used email, and email only, which several times caused us some headaches when there was an urgent issue and our person-in-charge couldn't access the account.
I've had a system administrator role for multiple companies over almost 15 years now. I've yet to see a perfectly reliable email system.
Doing password resets over email is one thing (though I think SMS is still better). At that point, the individual no longer has access to their account anyway, and you're dealing with a much smaller number of impacted users. It's much worse to throw up your hands and say, "I don't want to deal with passwords, let's use email", especially now that there are so many good password-handling libraries for so many different development environments and numerous articles on proper password handling.
If text messages were abused to the degree that email is, and all kinds of different things were developed to try to "solve" that abuse (as has happened with email), then deliverability would suffer and it would be a coin toss for which approach to use.