Why is the light cutoff so bad?

This looks like terminator effect to me. It happens with low-poly objects in Cycles. Check this topic:

In order to solve terminator effect you need to either increase polygon count or size of light (or both) (or use Eevee which doesn’t have this issue).