Derby is absolutely the best when it comes to needing a small, embeddable RDBMS in your applications. Certain jobs, like Risk Modeling, are perfect for a database that is small enough to fit into memory with no trouble then store data from various sources, and then allow a user to access those data sets quickly.
First of all the performance of RDM was superior compared to SQLite in my multi-user environment (about 200 users). The pricing was surprisingly good compared to other high-performance databases.
Decreased time to market, a faster and more performant application overall and lower maintenance costs.
They run on most RTOS and can be used in a cross-platform environment.
Not as well positioned in the market as the "big dogs" (Oracle, MSSQL)
Been around awhile, and not a lot of exposure. This I believe is primarily due to it's relation to the Apache Project (which is not bad, but they don't force big, lumbering corporate volume licensing on you), and thus people are a bit gun-shy about NOT throwing money at something
Java is still "slow" compared to C/C++, thus making Derby a bit slow too
SQLite is another open-source zero-cost file-based SQL-capable database solution and is a good alternative to Apache Derby, especially for non-Java-based solutions. We chose Apache Derby as it is Java-based, and so is the solution we embedded it in. However, SQLite has a similar feature set and is widely used in the industry to serve the same purposes for native solutions such as C or C++-based products.