I'm going to add a fourth word: regurgitate. This is the most technical sounding word. So:
- Regurgitate: very formal (eg: research journals, academic talks, etc)
- Vomit: formal (eg: doctor talking with patient, medical advertisement, etc)
- Throw up: casual everyday language (eg: talking to family/friends/coworkers and more casual medical PSAs)
- Puke: vulgar (eg: used by comedians and children, in sentences containing many curse words, and in vivid descriptions of the event)
Example sentences for each:
- 3/10 patients in the study were observed regurgitating within 2 hours after experiencing the onset of nausea.
- Ask your doctor if Examplalil's anti-nausea and vomitting medication is right for you.
- My vacation was not fun. I was so sick that I threw up!
- I f***ing puked my brains out! When I finally stopped I had to mop up green bits of spaghetti that got everywhere.
Also, vomit and puke can both be used as nouns to describe the material that comes out. Again, vomit is more formal than puke here.