Well, the main reason is the difficulties associated with making structural changes to the tables after the software has been operational at a customer site.
With my FREE TABLE systems, I have developed a process whereby I only need to redefine the table structures within a system structures table and rebuild the application. Then the tables are automatically restructured when the new executable is executed for the first time on site. Absolutely no headache.
With a database, it is much more complicated. I know there exists software (I forget the name of it) that helps with database management but even that is not simple.
There are also numerous other difficulties associated with the use of databases which I will not go into at this time.
And heaven help you if the database container gets corrupted.
The bottom line is that I have no compelling reason to use a database container so I don't use them. Simple.
Don