The term "cure for cancer" is misleading, as it implies that there could be one drug against every kind of cancer in each and every individual. In case of this interpretation, it is clear that there can be no cure for cancer, never.
But if you are diagnosed with cancer today, this does not mean your sentence of death! More than 30% of cancer patients can be cured. This is especially true if the cancer is diagnosed at an early stage, which also becomes more and more possible nowadays. There has been huge progress in the case of, for example, breast and prostate cancer, colon cancer and leukemias. Therefore, the question why there is "no cure" is even wrong. What is more, even vaccination against cancer is possible today in the case of cervical cancer.
To not sound over-enthusiastic: The serious problem of cancer is far from being solved! I just wanted to point out that one cannot claim that no progress has been made since the last 40 years or so. So I would put the question a little different: What is it that makes the treatment of cancer so difficult?
The reason is that cancer can have many causes and as many treatment methods are necessary. Cancer is a superordinate name for a variety of diseases. The unifying characteristic is: malignant cells occur that divide without being controllable by anything. Thereby, they displace and damage other structures and organs of the body. Finally, they can even leave their site of origin and build metastases in other organs.
But the reasons for this uncontrolled cell division are various: First of all, there are many ways to "switch on" the proliferation of cells. Any one of them can be hyper-active to result in the excessive proliferation seen in cancer. Second, a cell usually has ways to recognize such erroneously hyper-activated pathways, and can use several "off-buttons" to prevent malignant growth: The proliferation is stopped and the cell commits "suicide". In cancer, this is not possible anymore, but which part of the "turn-off-mechanism" is disturbed can vary between cancers.
The classical ways of cancer treatment (surgery, irradiation and chemotherapy) do not care about the various possible reasons for cancer. Removal of the tumor by surgery or killing of the tumor cells by irradiation target the tumor as a whole, but do not rule out that some cells are left and do not target metastases. Chemotherapy drugs target not only the tumor, but all rapidly dividing cells which leads to severe side effects and also cannot guarantee that all cancer cells have been destroyed.
If one wants to treat a certain kind of cancer in a certain patient specifically and effectively, one has to check which parts of the machinery that controls cell proliferation and cell death have gone wrong. And then use drugs that tackle the problem at the point where it originates. Many things are known by now about the possible molecular causes of cancer, and in certain cases there are quite effective drugs available. In other cases, this has not been achieved yet, and some cancers which are really aggressive such as glioblastoma, will be extremely difficult to cure.
So, the "cure for cancer" has been on the "most-wanted-list" of scientists for a long time, and it will be there for a long time. It might be that physicists rather find the "world formula" than life scientists find THE cure for cancer, because in physics it happened quite often that complex issues could be simplified and summarized by a single formula. In biology, in contrast, things tend to become more complicated the further you look into them. Trials to put biological phenomena into simplifying formulas are pretty much in their infancy and far from useful for medicine. But this is not a reason to give up!