Probably because the North was much more urbanized, and many of its people had become completely detached from the land on which they lived.
If you look at a list of the 50 largest cities of the U.S. in 1860, you'll find the following in Confederate states:
#6 -- New Orleans, LA
#22 -- Charleston, SC
#25 -- Richmond, VA
#27 -- Mobile, AL
#38 -- Memphis, TN
#41 -- Savannah, GA
#50 -- Petersburg, VA
That's it. The South was largely agrarian, and I suspect that tends to make people much more connected to the place where they live.
from 1862 till the end of the war, the 2nd larges city in the Confederacy was wherever the Army of the Potomac was camped.
That's a good observation. Cities were pretty much foreign to the average Confederate soldier. That's why they named battles after the closest town, while Union forces named them after immediate topographic features. Thus, to Confederates it was the Battle of Sharpsburg; to Union troops it was the Battle of Antietam (Creek). It was the Battle of Mansfield (La.) to Confederates; to Federals that battle was "Sabine Crossroads." Similarly "Manassas" and "Bull Run."
Not at that time in Michigan, Indiana, Illinois and Ohio. Plenty of Union troops came from these states.