Анимация top/left часто трогает layout; transform обычно остаётся на этапе composite и может идти на GPU-слое.
Почему так
Изменение top/left (и width/margin) заставляет браузер пересчитывать геометрию и часто paint соседей. transform: translate() сдвигает уже свёрстанный слой без пересчёта потока.