The Captain rank in the rebellion is similar to that rank in the Army, USAF, Marines (aka O3 pay grade) and not that of a Navy Captain (aka O6).
The Stars Wars Universe does also utilize the term Captain to designate a position of a person who is in command of a vessel. This is also similar to maritime tradition in both civilian and military. In fact, in the Navy, you can have an officer such as a LCDR (O4) or CDR (O5) in command of a vessel and it is tradition to address them as Captain and/or Skipper. Captain is not utilized as a rank but a position.
It is much like the use of Commander. Commander can be an assignment such as an Admiral who is Commander of Fleet Forces. He is a commander in position not as a rank.
BTW, if you ever want to know what is proper address in situations like this. You have to determine if the options for the address would be a demotion to that person's real rank. For example: you can call any type sergeant in the USAF a sergeant because it is not a designated rank. However in the USMC, there is a sergeant rank. It is the lowest sergeant pay grade. Therefore calling a Staff, Gunnery, Master Sergeant a Sergeant is not acceptable because you are calling them a demoted rank.
Other examples:
Call a Lieutenant Commander a Commander: Ok
Call a Lieutenant Junior Grade a Lieutenant: Ok
Call a Senior or Master Chief a Chief: No
Also, even though Hera is Captain of her vessel, it would seem her overall responsibilities/assignment in both Rebels and Rogue One are that of military operations not dealing with the fleet put other non-fleet operations. Remember that Solo was Captain of the Falcon but he was a General.