I think a lot of the reason is that most previous incarnations of multiple dispatch give you slow multiple dispatch, and a different way to define functions that don't have multiple dispatch and are faster to call. As such MD tends not to be commonly used in languages where it exists. Julia isn't the first to have multiple dispatch, but it is the first where everything is multiple dispatch. The result of this is that we put in a ton of work to make multiple dispatch fast, and all the APIs are designed around it, which gives a very different feel to the language.
As I noted around a year ago, there's a little puzzle here: in principle Julia's approach was available in the 90s, when decent JIT technology was becoming available. So why was MD given only toy-like treatment before Julia? (MATLAB did get a JIT in 2002, so it's not really a toy, but the performance was not good enough to prove the concept)
My impression is that the complained-about inflexible division between concrete and abstract types was pretty necessary to achieving good results in practice, but this division is alien to the expressiveness-loving lisp culture.