There were quite a few witnesses to various parts of the case, actually -- but the evidence they give is often muddled, or contradictory, or at least difficult to reconcile. The physical evidence is that Zimmerman himself sustained injuries. There was a fight of some sort. One of the witnesses describes one person being on the ground hit repeatedly:
" "the guy on the bottom, who had a red sweater on, was yelling to me, 'Help! Help!' and I told him to stop, and I was calling 911 ... [later] the guy who was on the top beating up the other guy, was the one laying in the grass, and I believe he was dead at that point."
Zimmerman was wearing a red top that night. Other witness accounts vary, slightly, but generally they agree that there was a fight and that Trayvon Martin was on top of Zimmerman.
This changes the picture radically from what I had initially thought. My first idea was that this was a cold-blooded killing combined with some made-up story. That looks to be very wrong. More likely, as it seems to me, is that there was a confrontation that was unintended, spontaneous, and possibly started by either side, but that it seems reasonable to assume that Zimmerman didn't intend to shoot the boy.
The remaining question is who actually started it, and to this there doesn't seem to be any clear answer. Zimmerman's phone call (recorded) to the police suggests that the boy was the first one to approach the other; another phone call (unrecorded) at about the same time paints a different picture. But the point is that it doesn't seem to be clear either way, and if there is reasonable doubt then you can't convict.