Why did God tell Joshua to destroy the Canaanites?
God commanded Joshua to destroy the Canaanites because their iniquity had become full. He had given them 400 years to straighten up, but they went deeper and deeper into wickedness. When Israel crossed Jordan, God said to destroy them and not spare a single one, because they had gone down so far.
Les explains that God had told Abraham in the Abrahamic Covenant that his offspring would be in a land not theirs, in slavery 400 years, and He gave the reason they had to stay out of Canaan: the iniquity of the Canaanites was not yet full. God gave the Canaanite people 400 years to straighten up, but they went deeper and deeper into wickedness. So when Joshua came across the Jordan River, God told Joshua and the children of Israel to destroy them, not sparing a single one, because they had gone down so far. Les also compares this to the Gentile world, which is fast approaching the same place. He notes that the press ridicules the outpouring of God's wrath, but God is patient, gracious, and kind, letting man take his own way.