These are almost perfect synonyms. They are listed as synonyms, but then a lot of words that are listed as synonyms have differences of nuance, or are only synonyms in some senses of each word.
Idiomatically, though, there's a slight difference between "I'm done" and "I'm finished". In the context where someone has been working, either might be used if they have completed their task - but "I'm done" might be used for them giving up on the task, at least temporarily. "I'm finished" won't be used for that as often. However, they both take that meaning if you add, for example, "...for the night":
I'm done for the night.
I'm finished for the night.
Both mean that you're stopping working for the night.
There's also an idiomatic use of "I'm finished" that you wouldn't expect to be able to use interchangeably with done. That's when you are using it to indicate that your situation is completely unrecoverable.
That's it. I can't make rent on the shop this month, and there's no way I can get another loan. I'm finished.
That would mean that the business is going to go under, there's nothing that can be done to save it.
Essentially, finished is used when something is complete, there is no more to be done, no further to fall, or no work left to do, and so on. Done is used when you aren't doing any more. This leads to a huge overlap in meaning, and the difference is essentially one of nuance.
Most of the time, though, they are interchangeable.