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.
6Testnet coins aren't durable. Sometimes, the bitcoins developers will ship a new testnet with a new bitcoin client. This will reset everybody's balance to 0 on the testnet. It's happened twice so far. – Nick ODell – 2013-02-24T19:09:01.567
1@NickODell: Interesting point, which leads to a philosophical discussion of "which is the real testnet"... – Meni Rosenfeld – 2013-02-24T19:33:44.887
Details about testnet reset: http://bitcoin.stackexchange.com/questions/9975/has-the-testnet-ever-been-reset
– Nick ODell – 2013-06-15T20:37:19.6672
Also, if you're looking for testnet coins there are a number of faucets like this one -> http://tpfaucet.appspot.com/ (which also has a nice explanation of why you shouldn't sell testnet coins).
– schellsan – 2013-09-06T00:04:23.057