As mentioned in other answers, the main reason is the diamond inheritance problem. Prior to Java 8, there were no default interfaces so this issue did not exist in Java at all and this was completely intentional.
A different but related question would be: "if the diamond inheritance problem is so bad, why was it introduced in Java 8?" To understand that you need to understand why the default
keyword was introduced to allow method implementations on interfaces. The reason is that once an interface was released, it was impossible to add anything to it without breaking existing dependencies on that interface. By adding a default implementation, interfaces are more free to evolve.
So let's go back to your question. What's good for the goose is good for the gander, right? Well, interfaces are more like ducks. The point of a default method is not meant to be a place to add non-trivial implementations. I think a good example of it's use is the remove() method on Iterator. In the past whenever you wanted to implement an iterator, you had to specify a remove() method which (in my experience) is almost always to throw an unsupported operation exception. The addition of default
is not meant to change the point of interfaces. It's a pragmatic addition, not a conceptual one.
The thing to keep in mind with default implementations is that in the spec for polymorphic method binding for Java, any class in the inheritance hierarchy takes precedence over any default method even if that class doesn't implement the interface that defined it. If you add multiple inheritance of classes, this simple rule which is the most straightforward way to resolve conflicts becomes vastly more complicated. There is no corresponding rule that can be applied for classes.