What motivates nodes (or miners) to relay transactions? Miners want to include as many transactions as possible in their block to get the (optional) transaction fee. But what motivates them to relay a transaction further to the network? Is this done solely for the greater good?
Nothing. That's why you send your TXs to several nodes.

Non mining nodes do it "to keep the whole thing working" as long as it is very cheap. 

Because of this miners can't keep TXs for themselves and thus do not even bother to try and keep TXs secret. Maybe they also have a better conscience that way. :)