Romex (NM-B) cable is required to be protected from damage.
Installing it on the wall surface in a garage would be considered subject to damage by most. Stapling through sheetrock into studs to secure it has a lot to be desired. Fished in the wall is another story.
PVC on the wall is acceptable but it will sag rather quickly. You can add lots of straps but it still looks hack IMO.
EMT for sure.
I made a mistake and surface wired my garage using flex conduit. Has worked out OK, but has sagged and looks like crud. Planning to redo with EMT after more important projects (kitchen and master bath) are finished.