Your face is regularly visible on CCTV when you swipe the card. If you drive to the shop, they could easily find the number plate of the car.
This also applies to anyone who sometimes accompanies you, e.g. children.
(I don't know if this is legal or whether the do it, but the data is available.)
If you're shopping in-store in the UK, the supermarket can't profile you based on your bank card without express consent, as it falls under personally identifiable information.
If someone is going to offer discounts anyway, then I want discounts on things that I'm likely to buy.
I am quite happy to take the (low and theoretical) risk of harm in exchange for the (high and real) financial compensation.
You're welcome to either pay more or shop elsewhere. We each have a choice.
You really don't though. You can either pay more, or go to another supermarket with a similar scheme. Doesn't really seem cricket, am I really loyal for buying bread or cheese because I needed them and this supermarket is in my neighborhood?
Am I willing to sell the correlation between this week's trip and last week's trip for $20? Absolutely.
Sainsbury's give you 1 nectar point per £ spent in store or in petrol. A nectar point's average value is a half penny, but annually they put on an offer to "double up" your points. That's a full percent off your annual petrol and shopping bills (more if you include the algorithmically generated offers).
The typical UK household spends £1,500/yr on petrol, and £6,500/yr on groceries, so the trade-off is that they give you £80/yr to profile you based on your preference of beans.
Cash is truly the only de-facto standard that gives you privacy on expenditure.