This is really an idiosyncratic question, that is open to various opinions. But I'll give it a shot. Note that both objects accept approval processes.
Here are a few characteristics of each object. This list is neither exhaustive nor is meant to tackle all use cases.
Cases are normally well suited for interactions between Customers (let's call them external users) and members of the organization that uses CRM. There are many use-cases that don't fit my general rule above, but you get the idea. Think "I need to do X and I need assistance from You".
- They very often are initiated from the "External" side (An internal person can create the actual record but the action that requires a case to be opened is on the external side)
- You can create them via email (using Email 2 Case)
- You can create assignment rules to send them to the right department
- You can easily make them available in a community.
Opportunities are better suited for sales (or similar) processes, where you're taking a record through certain steps, until this record is "Won" or "Lost".
- Opportunities are usually stared internally (think about you starting a sale, or recording the possibility of such)
- Opportunities have stages that the record has to go through
- Opportunities are relevant to forecasts and goals
- Opportunities can have a pricelist, and have products associated to it.
Based on the description of your needs, I would use Case. It feels like it better fits the scenario you described, where users make a request and communicate with you about it.