Hi Liza
When adding the full map service, the map viewer sends an Export Map request to ArcGIS Server and it is rendered server-side.
When accessing an individual layer, the map viewer sends a Query request to ArcGIS Server, returning geometry which is rendered by the browser. It would appear that for this scenario, the map viewer doesn't construct a text symbol to render the labels, which is why you don't see them.
In somewhat of a workaround, you can add the full service to the map and remove all of the layers that you don't want to be part of the TOC. This sends a Dynamic Layer request to ArcGIS Server, and the labels are displayed.
I've checked in the latest Map Viewer Beta and the behavior is the same, but at least the new version comes with more labelling options than the original map viewer. Might be worth adding this as an idea if there isn't already one on GeoNet 😊
Cheers
Craig