The speed up (Start) and slow down (end) is the behaviour of the Bezier curve, The motion will accelerate gradually from a stationary start position and decelerate approaching a stationary end position.
By making cyclic, notice the curve change outside of the playback range.
What making cyclic does is join the dots basically and the start and end keyframes are no longer stationary positions, they are part of the continuous loop.
With that there is no longer acceleration and deceleration.
What making cyclic doesn’t do is change the keyframe (location).
As I said it kind of joins the last and first keyframe to make a continuous loop.
Also make sure your playback end frame is one frame before your last keyframe.
If your last keyframe is 81, end the playback at 80.
Or you will have a stutter in the loop. The ball will be in the same position over two frames.