For that reason, insurers are very strict about roof age. Roofs are very expensive to replace ($15-$20k+), so it becomes a fight between homeowners trying to save money with a roof that works just fine (in their mind at least) and an insurance company that keeps raising rates or threatening to drop if they don't replace it.
Enter roofing contractors. In Florida you can assign your benefits to them and they gain the ability to sue on your behalf. So they go to desperate homeowners and offer to find a reason for roof replacement that homeowners insurance will cover, and sue the insurance company if they refuse. To give you an idea of the scope of this, 79% of insurance lawsuits come from Florida.
Although other factors do exist, this is a large part of the reason insurance is so expensive here even for those not in a flood-prone area.