Ignoring Linux and PIC and speaking in terms of generics, using an OS lets you focus on the application tasks/processes instead of you also having to perform task management. Just a simple example:
You are making a circuit that has a small LCD display that shows time and temperature. Additionally you're connecting to some serial peripheral to retrieve information periodically. With the OS, you can write three processes, one for each required task and not have to worry about time-sharing or task-handling and let the OS do it for you. With bare-bones code, you'd have functions and you'd need to juggle between them as required and managed that yourself. The example I gave is fairly simple but you can imagine how it would be helpful if you scale up.
With Linux or other OS, you get task handling as well as additional capabilities such as networking, IO, file system, etc that makes it easier to get started than dealing with all these yourself.