Looking through the browser support matrix[1] and the caniuse report for whether requestAnimationFrame is available[2], it looks like all supported browsers have requestAnimationFrame. But as was pointed out to me recently, caniuse doesn't always reflect the reality for all page views.
If we can assume its always available, we can drop checks from mw.loader startup code (the fallback there is what prompted me to investigate) as well as a bunch of other places in core and deployed extensions. I'll file tasks to remove elsewhere if this gets approved.
So, can we assume its always available?
[1] https://www.mediawiki.org/wiki/Compatibility#Browser_support_matrix
[2] https://caniuse.com/mdn-api_window_requestanimationframe