A typical example is simply sending a transaction, an operation that changes the state of the blockchain, specifically two accounts: the receiver (who will get $NEAR) and the sender, who will have less $NEAR and will pay these fees for both.
Less intuitively, there are other state changes that pay fees, such as:
sending fungible and non-fungible tokens;
staking and unstaking tokens;
authorize Web3 applications such as Ref.Finance;
recovering the wallet on a new browser window;
claiming $NEAR from a lockup contract.
Even registering a new account, such as "coin-op2.near", requires some fees.
If your wallet doesn't have enough tokens available, the transaction will fail with an error similar to the one below. The solution is to add a small amount to your balance (even 0.1 can be enough) and try again.
Your account does not have enough balance for this operation.