For example, let's say you have a product that manages AWS cloud spend in a way where you can always reduce AWS costs by 10%, and you charge 2% of cloud spend for this product. This is a great example of usage based pricing: whenever the customer is paying you 2%, they are saving 8%. This is a no-brainer, and the customer will use your product as much as possible.
On the other hand, lets say your product can sometimes save 30% on AWS spend, and sometimes it can't save anything at all. For example, maybe it's great at optimizing spot instances but not reserved instances, or it's good for some AWS locations but not others. Now pricing based on cloud spend sucks because you're forcing your users to think hard about whether to apply your product to each individual piece of cloud infra. This is a crappy user experience, and customers will leave if something friendlier comes along.
On a side note, a more subtle example here is Heroku. When you're a small Heroku customer, paying a 200% premium on cloud spend is fine because you save so much by not hiring a team to manage your cloud infra. However as you grow, the price you pay increases much faster than the value you receive. As a result, lots of customers graduate once they hit a certain size.
This is a general pricing principle I've been thinking about: you want your price to be proportional to your value. Doesn't matter if you're charging by usage, or per seat, or a flat price -- you want the decision to be a clear win for your target customer all of the time.