The one big difference between MainNet and TestNet is that TestNet exists at a whim of the developers. Currently we are at TestNet 3, meaning that the entire network was reset 2 times in the past.
If you try selling TestNet Bitcoins to other people, you might quickly find that the Bitcoin core development team will reset the TestNet and you will find yourself with a lot of worthless coins. From what I heard, that was one of the reasons TestNet was reset in the past - people started selling TN coins.
Since TestNet and MainNet use different net byte (0x6F rather than 0x00), means the addresses are incompatible with one another - you can't send TestNet Bitcoins to normal Bitcoin address. Even if such a transaction would be accepted (say, by using "pay to public key" script), the transaction itself would not penetrate from one network to another. In Bitcoin, a transaction is valid only if it is created from valid outputs (among many other things). Since a transaction from TestNet would reference an output that does not exist on the main Blockchain, the transaction would be invalid.