Revit's way of letting one piece of data exist consistently across families, projects and schedules. A shared parameter is defined once in an external .txt file with a unique GUID, and every family or project using it refers to the exact same field - which is why it can appear in schedules, tags and IFC exports.
Without shared parameters, "FireRating" in one family and "Fire_Rating" in another are two strangers that will never meet in the same schedule.