Besides mocks hiding subtle bugs, the adapter approach can very easily hide costs. This is how you end up with O(n) SQL queries.
Abstractions are useful, but they also leak. The wrong abstraction can make many useful things impossible.
Just like ORMs, such interfaces can be useful, but have the cost of limiting your options.