Because it's anti-freedom, that's why. You will, of course, claim that it's promoting freedom by protecting homosexuals in the workplace, but it actually takes away the freedom of the employer to employ whom he wants at will. These kinds of laws are an overreach by the federal government.
If a person is qualified, reliable and performs the assigned duties well, should the employer have the freedom to fire that person because they happen to be gay? The freedom you're defending is the freedom to discriminate. The freedom I'm defending is the freedom of an individual to freely be himself. I put it to you: which is the nobler, more American version of freedom?
If someone has a job, is qualified, reliable and performs well, it HIGHLY doubtful that the person will be fired because it's found out that the person is gay. Unless the gay guy starts losing it over a coworker and start harassing him. Should an employer have to hire someone just because they are gay, whether they are qualified and reliable or not.
None of us are able to be freely ourselves. Being freely yourself is probably the number one reason why people are fired. There is no "nobler" version of freedom that doesn't impose on someone else's freedom. If the gay guy has the freedom to act out at work, then anyone working with him or her, has the same freedom to act out anti gay feelings. That's freedom to be freely yourself.
We don't discriminate enough, there should be more of it.