DuckDB is a great choice for analytical workloads where read performance on large datasets is critical. You would use it over SQLite when you need to perform complex analytical queries on big data, such as aggregating sales data from a large e-commerce dataset, because DuckDB is optimized for this kind of task and can handle it more efficiently than SQLite.
Use SQLite when you need a simple, embedded database for local data storage in applications. It's particularly useful in mobile apps, desktop applications, or prototyping where a server setup and management of a more complex database system like DuckDB would be overkill. For example, if you're developing a mobile application that requires local data persistence without the need for concurrency and high performance, you would choose SQLite.