Almost nothing in the real world moves at constant speed. A hand reaching for a cup, an arm opening a door — both start slow, speed up, and slow down again before stopping. Animators captured that feeling through spacing: pack the drawings close together where the motion is slow, and spread them apart where it's fast.
Plot dots at equal time intervals and the idea becomes visible: linear motion produces evenly spaced dots; slow-in/slow-out clusters them at both ends and spreads them in the middle. In CSS this became the easing curve directly — ease, ease-in-out, cubic-bezier().
Both tracks below cover the same distance in the same time. The top one is linear, so its dots are evenly spaced and the motion reads as mechanical. The bottom one is ease-in-out, so its dots bunch up at both ends — the start and stop feel soft.
When to use
Use slow-in/slow-out for anything the user just triggered — clicks, drag releases. For an endless loop like a loading spinner, linear is usually the better, less distracting choice.