The people doing it seem to think it’s bad. They keep lying about it instead of being proud of it. And the lying about how their pricing works seems like fraud.
If they’d just openly admit what they were doing, and some other companies said they don’t do it, and it was really easy to tell which companies do what, then that might work. But their lying screws up this mechanism; it’s hard for consumers to tell which companies are lying and which aren’t, and the courts aren’t doing a very good job of sorting this out either.
Imagine Walmart had big signs up in every store that said “We charge different customers different prices based on algorithms and tons of data we have about you. Shop here to enter the low price lottery: we might give you low prices! Avoid some of our competitors that charge everyone the same price so you can’t get extra low prices there.”
And imagine Target had signs up saying “We charge everyone the same price instead of buying data from shady stalker mobile apps and then charging extra to people for not being desperately poor. We think that’s more fair and ethical.”
In that world, where both stores were totally open about what they were doing and were proud of it and didn’t lie at all, I think customers really would care and choose – and a lot would leave Walmart for Target. (Store names were made up arbitrarily for illustration purposes. It’s not my intention to call Target ethical in real life.) I think that capitalist solution you mentioned – basically customers voting with their dollars about what pricing policies they like – would be pretty effective if not for inadequately policed fraud.