Neo was shown to have some powers in the real world. Couldn't he have destroyed all the machines (like he destroyed the sentinels) and hence left Zion intact? Or was he just was not sufficiently powerful?
He wasn't sufficiently powerful, because it was mentally taxing and there were too many machines.
Neo destroyed a multitude of machines mentally. He destroyed the most at one time when he and Trinity attempted to reach the Machine City:
As Neo and Trinity flew toward the Machine City, they were also attacked by sentinels while Neo destroyed the bombs launched by the Armada. However, Neo was unable to destroy the sentinels in addition to the bombs because
There's too many.
Neo, The Matrix Revolutions
And that's the answer, straight from Neo himself: There's just too many machines for Neo to destroy them all. It's extremely taxing for him to destroy machines mentally; in fact, the first time he did it (when he destroyed a small group of Sentinels at the end of The Matrix Reloaded) put him in a coma. We saw that there were too many machines defending the Machine City, and there were too many Sentinels (250,000) in the machine army that attacked Zion:
Note: You can see Neo and Trinity's attempt to infiltrate the Machine City in this Youtube video. The image of the exploding machine bombs is a screenshot from this video.
Neo had limited power and could not destroy all machines at once. It took some intense mental effort to destroy the machines that attacked him, thus showing that he was a "novice". Also, Neo could not destroy those machines remotely as the machines had to be physically close for Neo to sense them.
It seemed like he could only do this to one or just a few at a time. There were hundreds, if not thousands coming at him all at once. It was just too much for him.