Most users prefer Linux and most servers in the world are Linux-based. Why ? Because it's open source, i.e. free of charge. Windows servers always incur a surcharge for the client. Unless you are willing to install and run applications written only for Windows, for example an Outlook server or Microsoft applications, you probably want to go for Linux.
At the beginning of internet, shared hosting was pretty much the only game in town. The only alternative was to rent dedicated servers, which was (and still is) a very expensive option. Thanks to virtualisation, it is now possible to rent a virtual private server (VPS) for a very low fee. The main difference with shared hosting is that you have to manage your server yourself, whereas in shared hosting a system administrator takes care of the infrastructure for you.
Some hosting providers include a Plesk or a cPanel license in their packages. This is sometimes by default, sometimes a paying option. Plesk and cPanel are essentially GUIs that enable you to manage your server in a user-friendly manner, rather than having to constantly play with Linux commands. Whatever you choose, Plesk and cPanel are basically equivalent tools.
This is a very important point. If you have root access, it means you can install whatever you want on your server. It also means that you are responsible to install updates, take care of security etc. So the answer to the question basically depends on your technical knowledge or interest for technology. If you just need hosting for a Wordpress blog or a simple website, you most likely don't need root access.
With a dedicated server, you have exclusive access to an entire physical server. A VPS (virtual private server), on the other hand, is created by partitioning a physical server into multiple virtual machines using virtualization technology. Basically with a dedicated server you get the full pizza, whereas with a VPS (virtual server) you only get a slice. Obviously, this makes a significant difference in terms of performance and cost.