Because even though they don't have any actual value like in mainnet, they are really mined like in mainnet, with less difficulty and effort, but mined nonetheless, by miners that are willing to dedicate time and resources so we have a functional testnet to test our dapps on, for free.
So, there is a limit on the amount of testnet coins that can be created, hence there should be a limit on the amount of testnet coins that are given away.
Idealy, after we finish with our testnet tests, we should refund some of our remaining testnet coins back to the faucet to help others get some and test.