How would you test, say, payment processing, in any sane way, without mocking?
How do you test failure handling code when the failure can not be reproduced in a known way by the current code base?
I agree these tools are often overused, however they do have their roles.