What you need to do is make a String into an Icon which is then displayed just like an icon which then appears as a label.
So to create a BitMapDescriptor (for the icon) from text:
IconGenerator icg = new IconGenerator(this);
icg.setColor(Color.GREEN);
icg.setTextAppearance(R.style.TextAppearance_AppCompat_Small);
Bitmap bm = icg.makeIcon("ETA: 3m");
markerOpts.icon(BitmapDescriptorFactory.fromBitmap(bm));
// set position and other props on markerOpts and add
mMap.addMarker(markerOpts);
Note the title
property can also be added if desired (but not necessary) and works as you'd expect - click on icon and title is displayed.
And you can also update the icon (with new ETA) at any time by using the Marker object and set the icon as above.
There's other approaches discussed here (which is where the above snippet came from): Map Markers with text in Google Maps Android API v2.
Initial Marker Display:

And with title after clicking:
