There isn’t really any true notion of a “default” ingress controller. The Ingress standard has evolved over time, and the de-facto standard of ingress classes came about because multiple controllers attempting to handle the same Ingress isn’t desirable.
When Ingress resources have no class indication, there’s not much defense against multiple controllers handling the resource, since each controller defines its own behavior for Ingresses with no class. There is no K8S cluster-wide setting to indicate which controller should handle classless Ingresses, and some managed cluster providers install controllers that do handle classless Ingresses by default.
Explicitly setting a class avoids this confusion, and classes are an official part of the v1 Ingress standard as such. While we recommend that you do set them, you can configure our controller to handle classless resources if desired: Kubernetes Ingress Controller and Ingress Class - v1.2.x | Kong - Open-Source API Management and Microservice Management