We do have a tendency to make this a conditional statement, thus: "She could have done the work." Although "she can have" is grammatically reasonable and valid, my feeling is that it is little used because the definitive nature of "can" seems to contrast with the conditional nature of the situation itself.
Let me try to elucidate: Merely saying she "can have done" something implies that she might not have done it. There is an embedded question: If we are not saying she "did" in fact do the thing, then why aren't we saying it in this definitive way? If we are saying that she "can" have done it ("she has the ability to have done it"), but we are not actually saying that she did it, then we start to wonder: Did she do it or not? We must at least be implying that she might not have done it. And that also implies that there might be some reason why she didn't do it, something that prevented her from doing it.
All of this uncertainty tends to lead us into a conditional mode of saying what we were trying to say in the first place, and we wind up saying "she could have done" the thing.
This is my best guess for why "can have done" isn't really favored in common usage, but as Bill Franke points out, it does occur, and it's not wrong.