Use Maplex engine fixed my problem.
If you use standard labeling engine, later on, when you publish it to arcgis server,
you can not create custom labeling with arcgis online map viewer.
By using Maplex engine, you can create custom labeling with arcgis online map viewer.
As Mattropolis suggested, here is how I turn on Maplex engine on my arcmap and on my arcPro.
Arcmap First:
Here is esri document
Enabling the Maplex Label Engine and adding the Labeling toolbar
https://desktop.arcgis.com/en/arcmap/10.3/map/working-with-text/enabling-maplex-for-arcgis-and-adding-the-labeling-toolbar.htm
How to turn on maplex at ArcPro
Warning:
Analyze does not identify the compatible issue !!!! Which it should. Maybe is a bug need improvement.
ESRI never tell us that standard label engine will not compatible with arcgis online map viewer. You have to figure out on your own.
I have called esri customer service, they create a case with case number, however, they don't know what is wrong, don't know what to do, eventually they said they will escalate it to higher level team for further investigation.