I've seen a few anaylses over the years on this. I think the difference in battery life, as all things, depends on your use case, and your fetch settings (manual, 15 min, 30 min, or hourly).
Generally, push is touted as better on battery life for normal people that email little or moderately, and fetch is better for heavy email users.
My view is push is better for me - I like the instant notification, and allows me to respond faster. Some of my emails come as weather alerts, and would prefer to know now rather than 15 min later. I don't get tons of email, so my iPhone & iPad (and MacBook Air that also depends on battery life) only contact the iCloud mail server when it's ready to receive an email - no polling is done in the background and can only be manually triggered by opening the app or tapping on the refresh button. If I was a heavy receiver of email, I think push would drain me faster by pushing down frequent changes and polling the server perhaps several times a minute. Even switching to Fetch, with a polling every 15 minutes, is better in this circumstance. However, fetch can burn more battery life by polling for email when there may be none.
I think push is the right answer for most folks, with regard to battery life on iOS devices.