According to a reddit.com post, this usage “originates as a navy term for flag signalling”:
A tackline is a length of halyard approximately 6 feet long; the exact length depends upon the size of flags in use. The tackline is transmitted and spoken as tack and is written as a dash (hyphen) "-". It is used to avoid ambiguity. It separates signals or groups of numerals that, if not separated, could convey a different meaning from that intended.
Other comments in the post say that tack is used in Air Force radio communications, for brevity and clarity.
The paragraph quoted above continues:
[tack] separates signals or groups of numerals that, if not separated, could convey a different meaning from that intended.
Example: If the signal SL2 means “Prepare to receive personnel casualties,” TACK would be inserted between the digit 2 and the given number of casualties: SL2 TACK 27.
In other words, in flag signalling, tack is a metacharacter, an extramessage separator. A comment later in the thread explains further:
To be precise however it's meant to separate terms so if you [have] two numbers in sequence such as: "twenty, two" it becomes "twenty tack two" and doesn't sound like "22".
If tack is treated as a metacharacter, it's slightly unclean to make it stand for the dash or hyphen that leads off an option specification in a command line, but people cope anyway.