- You don't have to write as many tests to get the same coverage.
- Many potential runtime errors become compile time errors before they get a chance to happen in production.
- Machine checked types replace lots of manual documentation.
- Automated refactoring shortcuts.
I'm sure you've heard of some of these. What don't you find convincing? Coming from strong functional programming languages, I don't understand why people like dynamic types at all.