A shell, in this context, is an application that you use to launch applications, switch between windows, etc. In Windows, that would be the taskbar. In Ubuntu, the default shell is called Unity and is what you see on your desktop when you first log in. It has a panel at the top which contains some indicators, a launcher on the left of the screen and lenses, which are used to find files, applications and other things. Gnome Shell is another shell that does the same things that Unity does, but in a different way. We have many different shells to choose from in Ubuntu, but Unity and Gnome Shell are both new and more "modern" than most other shells, so they are very popular. Since they're rather similar, people are fighting over which is best. It's rather silly, because you can have both and choose between them when you login. It's just like having two web browsers, except you can't use both at the same time.
Gnome, on the other hand, is a desktop environment. It has many, many applications, like file browser, video player, music player, photo album, an office suite called Gnome Office, and a web browser called Epiphany. Ubuntu is mostly based on Gnome, but have replaced some of Gnomes applications with more well known applications. For instance, Ubuntu uses Firefox instead of Epiphany, LibreOffice (formerly OpenOffice.org) instead of Gnome Office and Mozilla Thunderbird instead of Evolution. Ubuntu has chosen not to use Gnomes shell, instead making its own Unity.
Some people use very strong words of approval or disapproval of the shells, much like some people hate Firefox and loves Opera. It's true that they have different strengths and weaknesses, but they're still just choices. If you're curious, then install and test them yourself. If you're happy with what you have, then you don't need to do anything.
Shells are important programs because they define how you interact with your desktop, but they're still just apps.