The varying opinions here are rather fascinating. This almost seems like a religious issue to some. I own a business and I am a programmer. I can't tell you how many times programmers have told me that code sucks (sometimes mine - hey we all write bad code at some point). Being a programmer, I completely understand where they are coming from, and I also understand the value of time gained in the long run versus the short term delays. However, time costs and as the one who writes the checks and has to cover them, it comes down to a long-term vs. short-term benefit cost analysis. If it costs the business, let's say, $1000 to refactor and it can be shown that it will cost $2000 not to refactor because of the bad code, you just showed a $1000 savings. To a business manager, this should click, for as long as you can demonstrate the cost of not doing the refactoring. They will likely symphathize with your professional need to get it right, but they need to justify the cost/benefit, pure and simple.
You shouldn't have to do a complex business analysis, keep it simple. How much time will it take to refactor and multiply that by an hourly or daily cost factor (take your salary, add about 25% [this value varies from business to business, but 25% should be close enough for most] for overhead, insurance, etc. and figure out your hourly or daily cost). Now you have a cost to refactor.
$60000 Salary x 1.25 = $75000 burdened cost
$75000 cost / 12 months / 22 working days = $297.61 (Cost per day)
Now,
3 days to refactor the code x $297 = $891 refactoring cost (This is your investment)
On the next code change,
It takes 5 days to work the code WITHOUT the initial refactor (5 x $297 = $1485)
If takes 1 day to work the same code that WAS refactored (1 x $297 = $297)
$1485 - $297 = $1188 (Savings) - $891 (Initial investment) = $297.00 overall savings
At this point, the investment has paid for itself, and any future savings are gravy and can be used towards productivity on other products, projects, documentation, billable work, etc. This was just an example, and you might find that it isn't worth it financially to refactor, or you might build a very strong case! Regardless of your religion on this, the numbers alone can speak volumes.
Time is an investment like any other. You can have the most beautifully written code ever, but if your company is out of business for poor financial decisions, the code doesn't do you much good anyway.
Generally speaking though, management may also have a very good reason not to refactor. It might have nothing to do with money or time, it could be a strategic decision or even a contractual reason you are not aware of (i.e. government work). Make sure you know all the whole story too.
I also see a lot of people talking about doing it on your time. This certainly shows conviction and love of your craft, but I wouldn't do it in a vacuum. I have seen programmers do this and cause havoc for other team members and the project as a whole. This is of course very general advice because culture and politics may play into this, but you may want to get buy-in before spending your own time to fix something, it may come back to bite you.
I hope this helps!