If you punish a student for cheating, the student (no matter how guilty s/he knows they are) is likely to file a complaint. This will be handled by the university administration, and there will be a hearing similar to a trial. This is time-consuming for the instructor, and there is a significant chance that the administrators will sympathize with the student no matter how obvious the instructor thinks the plagiarism is. (If I see a student looking over another student's shoulder during the exam, that will convince me that he's cheating, but the Dean's not going to take my word for it.) An instructor who is juggling two or three courses, plus possibly research, isn't going to want to devote time to such hearings if the outcome isn't assured.
When I was a lab instructor and caught students plagiarizing lab reports, the usual punishment was that they would get a zero on that lab, and not be allowed to write the lab exam (which meant a significant hit on their lab grade, but also freed them from a stressful exam that all the other students devoted a great deal of time studying for). Any more serious punishment would have required an administrative hearing, and the prof didn't have time for that sort of thing. But he did sit down with the students, outline the evidence against them, and outline the possible punishments for them (such as expulsion) in order to put the fear of Gawd into them. The students would then be grateful to receive only a zero, and not contest it.
The student I mentioned who handed in his photocopy of the other guy's lab report- he initially was worried that getting a zero on this lab report might lower his overall grade to the point where his average might not get him into med school. I made sure he knew that academic suspensions and expulsion made his GPA the least of his worries.