If one side dumps of a lot of traffic towards the other they can save investments in their own infrastructure: e.g. if a provider gives all their traffic going to the east coast to someone else at a peering point in LA, then they save the money necessary to maintain a good connection across the US, and the other has to pay for that. Which is why they might not be willing to do it for free if they see no equivalent benefit for it.
Example: Normal customers have to pay their ISPs for their connections, because the ISP doesn't gain anything from giving you internet for free.
But if google offers peering they'll probably say yes, because they can't tell their customers "sorry, we don't connect to google" and if they can get the data to google as close to you as possible, the less cost they have transporting it.
And if Netflix wants a connection (and send TONS of data their way), they might do it for free, because good connection to netflix == happy customers. Or they might think that Netflix has more to gain from a good connection than they do and they demand Netflix pay for it.