Cleaning up bad Code

A very good analogy between refactoring bad code with cleaning up split juice. http://www.disciplinedagiledelivery.com/spilled-juice/. One would clean up juice split in our homes as we know that if left somebody can step on it and walk all over the place or it can dry up and attract ants and other insects to it, in short the consequences are not good.Similarly consequences of leaving bad code as is are not good, but then why do software programmers not clean up bad code? Why do they leave it as is?