Consider startups. Each successive group of new joiners will be adding a lot of new code and regularly throw anything that's already there. The churn is massive.
Have you worked with or for contracting company like Accenture? They assign developers to work on a project for a defined period of time, then disappear. It's not systematic that the software will reach a well working state, be handed over to the client and be actually used.
Another case. Things done with independent contractors. They are regularly hired to do nothing, well, maybe pretend to work and show a demo once in a while. If they produce something, it's not uncommon that the company didn't bother to hold the source code or build scripts.
Don't get me wrong. I fully agree with you. There is definitely more work available in maintenance than in new projects. However I also think there is enough work for a developer to make a career in either.