What\'s the reason of this recommendation? Why not keeping consistent with other programming languages which use underscore instead?
Just a guess: it may be because it resembles English language's compound words (like "well-known", "merry-go-round", etc). Like Paul said in comment, it's one of the oldest languages and for the creators of LISP hyphen might have seemed more natural than, for example, an underscore.
Side note: I, personally, do like it, because it separates words, but at the same time makes the long identifier look as a whole (compare fooBarBaz
, foo-bar-baz
and foo_bar_baz
).