One reason there have been no complaints could be that few merchants currently complete a sale based on a 0-confirmed transaction.
This is what I believe needs to be tested, with results measured and reported, before I as a merchant would take the risk.
Specifically, the test I would want to see the results for is to emulate is a typical point-of-sale scenario -- say where a customer pays using the Bitcoin-android mobile client (and thus has 100% control over the timing with the ability to simultaneously send a message to commence the double-spend) and the merchant's cashier is running the Bitcoin client (the "Satoshi client") with default settings.
Seriously, a Finney attack on a retail point of sale (e.g. Starbucks, Walmart) is extremely unlikely unless the difficulty drops back down to far less than it is today. Say, less than 1000. And if that happened, the merchant probably wouldn't be accepting Bitcoins. Anybody who has enough hashing power to pull off a Finney attack today has 50 BTC just from that block, and likely hundreds or thousands more BTC; it is highly unlikely that they're going to rip you off for a coffee or their weekly shop.
Just plain sending a double-spend to other network nodes, though, is cheap and could be done from a mobile phone. There already exist tools which listen to the network (e.g. jgarzik's blkmond) and it would be easy to integrate this detection into a point of sale system. In the event this happens, the question then becomes which spend gets accepted by the network. And that won't be answered for sure until the next block is found. The customer can spend those few minutes talking to the loss prevention guys.
Also, even without the protection of listening for double-spends, accepting a transaction at retail point of sale with 0 confirmations is far safer than accepting a credit/debit card. Those can be charged back for months afterward and for many of those it costs too much for the merchant to fight them. With Bitcoin your transaction is settled in minutes and by the time the customer is in the parking lot the money is yours forever.
Note that all of this applies only to retail point of sale transactions where the customer is interacting with a retail employee. Vending machines, self-service checkout, web-based transactions, etc., need to be handled differently.