Nothing prevents it. It's just energetically unfavorable. That is, the other states have significantly lower energy.
You can really dive in here with how 'deeply' you want to explain it, but to just give the cursory, simplest answer: Chlorine has an odd number of valence electrons (7). If it gained or lost an even number, it'd still have an odd number. The resulting compound would be a radical, which are generally high in energy.
Just remember that oxidation number is just a number assigned to atoms using some simple rules to help in balancing redox reactions. There is a logic behind, but there is no measurable property of the atom that reflects assigned oxidation numbers.