How to mount an external drive read only on the first try
I use a free app called Disk Arbitrator to ensure I mount any disk I want to mount as read-only.

It's a menubar app and has a Disks Window that you can also interface with.

Note that the Xcode Project files are available as well as precompiled binaries, if you do not have Xcode or want to compile it yourself. 

Here are some screenshots:

The Disk Arbitrator icon is the one on the far left and is showing in red for when it's set as read-only.





Showing the Set Mode sub-menu for: Mount read-only





One of the Disks Window showing a thumb drive mounted as: Read-only





Note that I am not affiliated with the author of the Disk Arbitrator project and am just a user that's happy to have an app to handle this operation when needed/wanted.