For running application tests it's well suited. H2 [Database Engine] can replace the real-world database solution for them easily and removes the requirement to set up a a separate database instance just for running unit tests. For using in actual production application one needs to consider scale. H2 is suitable if application runs in single instance and database is located in same machine as a file where that application runs. This means the application shouldn't have a large user base. However it's easy to switch to an actual MySQL instance if the need arises, it's most likely only a configuration change and doesn't require new code.
Your upcoming app can be built faster on a fully managed SQL database and can be moved into Azure with a few to no application code changes. Flexible and responsive server less computing and Hyperscale storage can cope with your changing requirements and one of the main benefits is the reduction in costs, which is noticeable.
Maintenance is always an issue, so using a cloud solution saves a lot of trouble.
On premise solutions always suffer from fragmented implementations here and there, where several "dba's" keep track of security and maintenance. With a cloud database it's much easier to keep a central overview.
Security options in SQL database are next level... data masking, hiding sensitive data where always neglected on premise, whereas you'll get this automatically in the cloud.
One needs to be aware that some T-SQL features are simply not available.
The programmatic access to server, trace flags, hardware from within Azure SQL Database is taken away (for a good reason).
No SQL Agent so your jobs need to be orchestrated differently.
The maximum concurrent logins maybe an unexpected problem.
Sudden disconnects.
The developers and admin must study the capacity and tier usage limits https://docs.microsoft.com/en-us/azure/azure-subscription-service-limits otherwise some errors or even transaction aborts never seen before can occur.
Only one Latin Collation choice.
There is no way to debug T-SQL ( a big drawback in my point of view).
We give the support a high rating simply because every time we've had issues or questions, representatives were in contact with us quickly. Without fail, our issues/questions were handled in a timely matter. That kind of response is integral when client data integrity and availability is in question. There is also a wealth of documentation for resolving issues on your own.
While both can run as an in-memory database, H2 Database Engine was just so much easier for us to use since we primarily use the Java stack and H2 Database Engine is also built with Java.
We moved away from Oracle and NoSQL because we had been so reliant on them for the last 25 years, the pricing was too much and we were looking for a way to cut the cord. Snowflake is just too up in the air, feels like it is soon to be just another line item to add to your Azure subscription. Azure was just priced right, easy to migrate to and plenty of resources to hire to support/maintain it. Very easy to learn, too.