UX. It's much faster to have JS return an instant error because you forgot an @ in your email than to have to do a roundtrip to the server and watch the page flicker (reload), especially on a crappy connection.
Not so big a deal on one field, but if you have 5+ errors in a long form, it can add up.
You of course still have to validate server-side to stop ancient browsers or people trying to hack your site from submitting bad data.