Fetch is when you open an application, and it goes and looks for the information on the server. It's like opening a web browser and clicking on a link. You get back what you asked for.
Push is when an applicaiton establishes a connection to a server, and the server sends back updated information without the client asking for it. This obviously has advantages as the application can notify you when there is something new without it having to be open. Many iPad apps can use push, but mostly used by email.
Push can be more wasteful for battery by a margin because of constant communication. Fetch can be also wasteful if it's set to check the server every 15 minutes even when there is nothing new.