A shapefile (.shp) is a vector data storage format for storing the location, shape, and attributes of geographic features. A shapefile is stored in a set of related files and contains one feature class.
A layer file (.lyr) is a file that stores the path to a source dataset and other layer properties, including symbology.
In comparison to a shapefile, a layer file is a just a link or reference to actual data, such as a shapefile, feature class, etc. It is not actual data because it does not store the data's attributes or geometry. A layer file primarily stores the symbology for a feature and other layer properties related to what is seen when the data is viewed in a GIS application.
For example, if a layer file is sent to a user on another machine without the data it was created from, it does not display on the map because it does not contain the source data. To get the data to display properly, the user must have the layer file and the shapefile it references.
This is where utilizing layer packages eases the processing of migrating data, because layer packages store both the layer file and source data. Refer to ArcMap: Creating a layer package for more information about layer packages.