You haven't missed much. The overall developer experience is still... poor.
Dynamo has its use cases. Imagine a database with 100K+ of devices sending different metrics out every minute or so. You need to retrieve metrics by device ID:metric and date/time range. I migrated a similar DB from Cassandra to Dynamo, and it worked really well (for that use case!)
In the years since, I've worked at other companies and seen Dynamo used where it was a really poor fit: tons of filtering/scanning, relatively tiny datasets that require many secondary indexes. I even know of one app that starts up and loads an entire DDB table into memory! If you're not absolutely sure Dynamo is a good fit, it isn't. Use a relational database.
> Lets start by the way one has to explicitly create indexes
I never heard anyone complain that they had to explicitly create primary keys when creating tables in RDBMS.
> or query types for what one can search for.
I never heard anyone complain that they had to put together SQL queries to get data out of a RDBMS.
It seems your only complain boils down to pointing out nosql databases aren't SQL databases, and you didn't bothered to onboard onto the tool you knew nothing about. That's hardly insightful.
With Dynamo, it's not creating indexes that's the problem: I also have to change my code to use those indexes. I've been using DynamoDB off and on, at several different companies over the past 10+ years. I've been using SQL databases for 25+ years. The DDB developer experience is less than optimal.
No proper REPL experience.
The barebones SDK.
That is how much I can still remember from 2018's experience using it.