For what it's worth, I think this is why kebab-case originally became popular in lisp-land. We used it significantly in our JS style guide at $PREVIOUS_FIRM.
The main flaw is that the underscore is not actually a character in the English typographical language; it's a typewriter feature for going back and underlining text.
When used for joining words, it looks terrible, like a hyphen that has lost its suspenders and fallen to the floor.
I would write kebab case even if hyphen required the shift, and underscore didn't.