I was just forced to sign one of these after already being employed. I, very clearly, pointed out that I didn't actually agree but that I needed a job. Often people don't see these things until it is too late to back out like at on-boarding or even later, as in my case. It is bad enough to have non-compete clauses, they are evil and should be banned, but then to sneak/force them after as if your employment is a TOS that can be changed at any time is beyond wrong.
If you really are a good place to work people will stay. If you really are paying enough for the value you provide, people will stay. If you aren't then people will leave, for the competition likely since that is the industry they know. Non-compete is really just a power play that enables companies to pay employees less and it is an abuse of power.