Election day - depending upon where you live - might allow someone to vote any time between six AM an nine PM - a fifteen hour window. That gives campaign workers ample time to get reports from polling locations updating their lists of which of their supporters have actually shown up and which have not; plenty of time to send drivers to pick up tardy supporters and haul them to the polls.
In a caucus state it is very difficult to send people out to pick up people who said they were going to support your campaign, but didn't show up because the caucus may only last an hour.
The best thing about caucuses is they don't cost the taxpayers anything - or at least not much.
A primary requires the expenditure of non-existent state funds to run a real election: Machines have to be transported, poll workers have to be hired, trained, and paid; official state election officials have to make decisions, and state facilities are required to pronounce a winner.
All that to choose the nominee of a political party. If I were an independent I might file a suit to forbid my tax dollars to be spent on a partisan - essentially a private - activity in which I am, by law in most states, forbidden to participate.
We should revolt and insist the parties either pay the cost of running their partisan activity or go to a caucus system which requires nothing more than keeping the lights on at Hillside Grade School for an extra three hours one night every four years.
See you in Iowa.