This is broken in 2.80 but worked in 2.79. Repro script:
bpy.ops.object.metaball_add() len(bpy.context.active_object.to_mesh(bpy.context.depsgraph, True).polygons) # will be 0
The issue is in BKE_mesh_new_from_object (blenkernel\intern\mesh_convert.c), where on line 958 we check for ob->runtime.curve_cache. It's null, which means we pass null to BKE_mesh_from_metaball, which then bails out without doing any work.
The convert operator works correctly.