When you fire someone. You tax HR and yourself with the process both of letting someone go and finding their replacement. You have to pay their salary 3-6 months going forward as well as all the paid vacation they may have saved up. Most importantly you tax your team with the added resource drain of covering the tasks as well as integrating the replacement. You also risk damaging morale, and worse, you risk increasing employee anxiety as even the best employee can have inferiority issues.
That being said, the basic mantra in management should always be that you can get rid of anyone, it’s just a matter of cost. So if you need to fire someone, then you need to fire someone.
Personally I prefer building people to the point where they will leave you themselves, but, that’s a style or management that isn’t present in a lot of companies because it takes a corporate culture that is very hard to maintain in large organisations and require quite a lot of management talent in small organisations. It’s also something that is incredibly hard to do as a single manager if the culture is against you.