Dynamic binding, also known as late binding, is a programming mechanism where the method to be executed in response to a function call is determined at runtime, allowing for more flexible and reusable code. This is a core feature of polymorphism in object-oriented programming, enabling objects to interact with one another in a more abstract and generalized manner.