This is indeed one of the biggest weaknesses of "pull-based" payment cards, and something most if not all natively phone-based methods do better.
The best credit and debit cards can do is PIN verification or biometrics (for Apple/Google Pay), but even there you still trust the terminal to not show you a different amount than you'll be charged (assuming the screen is even pointing towards you; I've often been asked to tap without seeing what I'm even consenting to).
Online, there's 3DS, but that's not required everywhere and for every transaction.
There once was a vision to extend both positive cardholder approval and cardholder authentication for each card transaction, but it turns out the friction of that is higher on average than just letting everything but the most egregiously suspicious fraud go through by default and handle the rest via the disputes process.
Out of curiosity:
> you open the app on your phone and it gives you a 6 digit BLIK code, you give that code to the seller
Is this the flow for online payments as well, or only for in-person payments?
>>Is this the flow for online payments as well, or only for in-person payments?
works for both
> Is this the flow for online payments as well, or only for in-person payments?
On-line, too. Or should I say, first, because AFAIK on-line came first. I've been using it for years as my default on-line payment method where available, before noticing it becoming an option on POS terminals.