Why don't full nodes who are not miners get compensated for running, storing and validating the network?
I don't think Satoshi ever answered this question so we can't be 100 percent sure on the rationale but it was clearly the right decision. Firstly, at least today (if not when released) it is orders of magnitudes more expensive to mine a block or contribute material hashpower to a mining pool than it is to run a full node. Secondly, it would be extremely difficult to locate all the full nodes on the network to distribute what would be a miniscule reward. The full nodes would need a way of telling the network what Bitcoin address they wanted to receive their "full node reward" to. Thirdly, it would cost a lot in transaction fees and take up a lot of limited block space to create an output for every single full node (tens of thousands exist) on the network every block to distribute the reward. Fourthly, many full nodes connect and disconnect to the network regularly. So you would need a way of monitoring all connections and disconnections to work out whether the full node deserved a "full node reward" for a particular block.
I'm sure there are many other reasons not to do this but hopefully the above convinces you that this is not a viable idea!