Because veteran also means people on active duty, and they are often not especially well paid for what they do and need a break in the price if possible.
If you start adding others to the list it soon gets out of control with everyone thinking they deserve a special discount. I don't want a debate on all the other people who think they are underpaid to start here. Veterans hold a special place in the hearts and minds of most Americans. Some cruise lines offer veterans a discount as a nice gesture and they don't have to do it. No different than a senior citizen getting into the movies for cheaper than what I have to pay.
I believe discounts were offered to fire fighters, police, and other emergency workers after 9/11. Not sure if they still are in effect.
And yes, I am prejudiced here since I spent almost 11 years on active duty.