You do if you want it to be smooth. animation-timeline: scroll() doesn't tween the effect like transition will. Also all the elements are moving at different speeds which is also not possible in pure CSS. Good observation though.
It can absolutely be done in CSS, both the "smooth" part (I suppose you mean easing the movement) and the different speed.
I've seen that done by Bramus Van Damme and Temani Afif, among others.