Requiring it to be all or nothing makes the feature useless (not cost effective) for merchants with a low fraud rates.
The entire point behind insurance is to have enough volume so that the small % when they need to pay up won't affect the business.
Perhaps it wouldn't work for stripe (to allow the merchant pick and choose which transactions use this service). But if it doesn’t it means that the service won’t be used by clients with low fraud rates.
This would depend on how well stripe can detect fraud.
And if the price is higher to insure individual transactions, that still would be a nice/valuable service to have.
The point of insurance is to transfer* risk to the insurer. The insurer does that by identifying a group that is homogenous enough that their premiums are just slightly over the payouts.
So an insurer can improve competitiveness by selling multiple products that cover different risk groups. I imagine that for Stripe, the risk variance falls in a fairy narrow band: bounded at the low end by not being worth insuring, and bounded at the high end by merchants losing their account.
* As opposed to say retaining risk, e.g. you don't buy collision on a beater.