Sometimes you know it must be done but you know the person is nice enough but just not competent, or can't do the job, or the job has changed and they're getting fired for no fault of their own.
There are those times when you fire someone but you feel guilty that, as their manager, maybe you could have done better with them but you didn't have time, were too distracted, too tired.
In companies that get big enough, the percentage of people getting fired for cause gets higher. Then firing people becomes part of a routine. If you let your feelings get involved, it will drive you crazy, so you try not to let that happen.