Unfortunately, Apple doesn't make it easy to see whether a phone is iCloud locked. They used to have a convenient online tool for this, but took it down. So a lot of folks, repair shops or not, get suckered into buying one.
From my perspective as someone who owns several stores, the majority of them get sold to people who don't know any better through platforms like Craigslist or Facebook marketplace.
A lot of repair shop owners do lurk on, say, FB Marketplace and comment on posts where people are obviously trying to sell stolen goods, but there will unfortunately always be someone willing to buy something because they got "such a good deal."
Typically repair shops aren't going to put used parts in a customer phone, so an iCloud locked phone isn't much use "for parts."
Can't speak for all of them, but one that I visited in Hong Kong to do a screen replacement definitely had a guy sitting at a counter breaking down a stack of used iPhones for parts.
Huh, that seems like an obvious thing for Apple to not just provide, but to make extremely easy to use and actually promote. Run a simple stolen/not stolen check from NFC by tapping another phone, or something like that. Perhaps be able to put a message on the check from iCloud to enable easy positive proof of ownership.
http://www.idownloadblog.com/2017/01/31/apple-probably-took-...
Homeowner's insurance/renter's insurance would likely cover it. I'm not sure I'd want to make a claim against my homeowner's policy for such a small amount though. I've fortunately never had to rely on it but i've heard rumor of not using it on small ticket items.
Some argue that you should always buy it because there's always the possibility of bad things happening that could be very expensive. But personally I (like I assume most people) am very selective.
That said, if you've been planning an African Safari for a decade, and everything is pre-paid to the tune of $20k, the $100 on trip insurance is probably money well-spent! For example, I did a long motorcycle trip where I paid $250 for a year's worth of medical evacuation coverage, which was nice peace of mind.
Of course, the more "stuff" a policy covers, the more expensive it is, but you bring up a good point about pre-paid expenses. My last trip was on airline miles, with $25/night AirBnBs that could be cancelled the day before.. train tickets weren't bought until I was in-country, and naturally no food/drink/museum entry/subway passes were prepurchased.