I don't see how e.g. [1] or [2] are "falling flat on their faces".
[1] https://fsharpforfunandprofit.com/posts/designing-with-types...
[2] https://lexi-lambda.github.io/blog/2019/11/05/parse-don-t-va...
or even something as basic as non-nullable types, enforced at compile time. a clear, obvious win.
The duck typed code is also significantly shorter, less lines of code per software feature means less bugs per released software feature.
It's very difficult to compete against just having less code. You only needed to write 1000 lines of code instead of 3000 lines of code? Then you just eliminated 66% of the bugs.
Static typing on the other hand catches less than 1% of bugs.
So you can go for the duck typing approach and remove 66% of the bugs in your code or the static typing approach and remove 1% of the bugs in your code.
Which approach do you think works better?