Governance allows Ethereum users to vote on just about anything you could imagine. Many DeFi protocols have governance tokens to allow the communities to influence decisions made about protocol changes. Some examples of protocol governance changes could be changing trade fees, increasing rewards for a certain behavior, and approving new features.
A DAO is a Decentralized Autonomous Organization. It is made up of governance token holders who vote on protocol proposals.
On-chain governance is voting that happens publicly on the blockchain through a smart contract. To see a contract example, check out the governance contract for lending protocol Compound.
This contract is an extremely powerful system for enforcing the will of voters since every action can be directly taken on the blockchain itself. The downside is that for simpler, less consequential votes, each voter must pay a gas fee.
Off-chain governance is voting that is related to, but doesn't actually happen on, the Ethereum blockchain. In general, this style of voting relies more on the social contract between token-holders and the people or organizations in charge of the contracts.
An example of off-chain governance ecosystem is Snapshot, developed by Balancer Labs. Snapshot allows Ethereum users to vote, much like they would vote on-chain, except there is no associated gas fee. Snapshot has users sign votes with their private keys (proving it was truly them who voted), but does not push the votes to the blockchain.