Some shops its easy enough to manage someone out and bring in a new team member who will contribute more. This is a health environment and generally free of the boom-bust hire/fire cycle.
Other shops have very top down hire/fire cycles where if you fire someone now you have no ability to replace them, and worse yet.. when you HAVE to fire someone, you want the low performer around to hit your metrics..
So a lot of shops carry around a lot of dead weight for different reasons, as long as the person is not a net negative contributor.
Aside from that, yeah, how to deal with poor performers is as much an art as a science. I often find, aside from exceptional cases, most of them actually have some part of the job they prefer & are good at, so modifying the task allocation can go a long way.