Buttons have more than an enabled and disabled state. They also have a loading state. The loading state isn't usually shown to users because most actions happen within seconds.
A typical interface screen has many elements on it. Hover effects inform users what they can interact with by providing visual feedback on buttons.