My two favourite sources for this kind of question are The Word Detective and World Wide Words.
They both cite the Japanese road theory, the Word Detective then adds:
The least exotic theory of all, but
almost certainly the true clue, traces
"hunky-dory" to the archaic American
slang word "hunk," meaning "safe,"
from the Dutch word "honk," meaning
"goal," or "home" in a game. To
achieve "hunk" or "hunky" in a child's
game was to make it "home" and win the
game.
The question of where the "dory" came
from brings us back to our old friend
"O.K." Children very often do not just
say "O.K." -- they say "okey-dokey,"
thus engaging in what linguists call
"reduplication," or the emphatic,
joking repetition of parts of a word.
"Hunky- dory" is almost certainly a
similar product of reduplication by
children who had won their game.
And Michael Quinion adds:
It may be that hunky-dory was the
result of a bilingual pun, perhaps
invented because American sailors knew
the word dori and prefixed it with
hunky as an imagined Japanese street
of earthly delights.
My favourite quote is from the Word Detective:
It's an entertaining theory, but like
most entertaining theories about word
origins, lacks supporting evidence.