Давайте начнём с
requestAnimationFrame(() => {
cursor.style.left = `${event.pageX}px`
cursor.style.top = `${event.pageY}px`
})
А вообще тормозит из-за того, что событие вызывется супер часто, а там стоит transition на курсор.
И можно ещё добавить на
.cursor
will-change: position;
p.s. ну а ответ на поставленный вопрос есть в самом вопросе.
в разных средах
Кто его знает что у Вас там ещё локально и сколько там контента и тд.