I just had a thought that sounds pretty obvious, but maybe there is an obvious answer which I don't see.
So, imagine such a situation:
The best sell BTC order on an exchange site is 10USD/BTC. I put in a buy BTC @11USD/BTC, and am counting on it to be fulfilled at 10USD/BTC, because there is such a sell offer.
Now, the exchange sees those two offers, and instead of matching them, they buy from the other guy at 10USD/BTC, and sell me for 10.8USD/BTC. And then they say: a dark pool buy order came in at 10.2USD/BTC, and we matched the 10USD/BTC sell order with this, while your buy @11USD/BTC order got fulfilled by a dark pool sell order at 10.8USD/BTC.
Is this possible, or am I missing something? And if it is, then how do you know if this is not happening all the time?