It's all tradeoffs and what kind of problems for features. You get different problems from developer incompetence between serverless and server.
With a monolithic server, things sometimes become spaghetti complex because you always have everything running and it won't be torn apart easily. I fix this problems when consulting. On the bright side, the frameworks tend to be batteries included and startup time doesn't matter.
The biggest screw up I see from engineers with serverless is not engineering to minimize cold start times. Fuck ups would choose java even before SnapStart existed to bail them out (and earn extra money for AWS.)
Lambdas also require some kind of build infrastructure so you don't lose your mind handing everything.
When I see people peddling server versus serverless, my initial concern is if that the code you write shouldn't change much. You have a function that returns data. It doesn't get much simpler than that, bit somehow engineers screw it up. You can mock things. Your can create a local server for dynamo... Especially since it is a glorified key value store
You should be able to trivially jump your code between server and serverless, if you can't, someone screwed up and they might hire me to fix it at some point.