Отличие requestAnimationFrame от других таймеров в JavaScript заключается в их назначении и особенностях работы:
requestAnimationFrame заточен под анимации и работу с графикой. 1 Он даёт браузеру возможность оптимизировать анимации, чтобы делать их плавнее и более ресурсоэффективными. 2 Например, исключает возможность ненужных отрисовок и может связывать вместе несколько анимаций в одно целое и цикл перерисовки. 2
Также requestAnimationFrame позволяет браузеру вызывать переданную в него функцию в тот момент, когда он готовится совершить перерисовку (обычно это происходит быстро, но конкретные задержки зависят от браузера). 5