Why do we use "have to have a visa to travel abroad", but not "must have a visa to travel abroad"? As far as I'm concerned, it's impossible to travel overseas without a visa, it's a law, so we should use "must" right?
In everyday usage, "have to" and "must" are used interchangeably. In your example, either one can be used, with no change in meaning.
In very formal contexts, you might prefer to use "must".
In the past tense, you must use "had to"
Last year I had to visit the doctor 4 times.
(*) Last year I must visit the doctor 4 times.