The human body can repair skin/organ laceration, fractures, even repair nerves - albeit the duration and rate of recovery differ.
Why can the heart muscles not repair themselves?
Part of the answer may be(*) that in bone, you have still stem cells everywhere (blood capillaries that grow until checked and osteoblasts), i.e., also in the vicinity of the wound. The same applies to skin, by the way, where the epidermis continues to produce skin layers until eternity. This facilitates repair enormously, as new cells won't have to move far to take their place.
Contrast this with heart or spinal cord, where the placement of the cells took place in early development when distances were small and most cells were undifferentiated. Also, no tissue like epidermis was left in the vicinity that could act as a near source of new cells.
(*) I said "may be" because 1. I have no ref for this, and 2. I have no idea to what extent other factors are involved. I would be thankful for counterexamples.
The heart does have stem cells in it, and there is cell turnover in the heart, of about 1% per year. Which is much slower than your skin, but not nothing. This allows your heart to grow during your life, and remodel itself slightly to become stronger/more efficient when you get in shape.
The heart can repair itself, when damaged it doesn't simply stay damaged. Unfortunately, the 'repair' leaves particularly useless scar tissue. After a heart attack, the dead muscle does repair itself, but very poorly. This 'scar' barely contracts, and isn't as strong as the heart wall around it.
This is mostly a function of the very specialized heart myocytes, and the evolutionary (relative) uselessness of being able to regenerate your heart after injury. In the wild, if your heart was injured, you were probably dead.
Part of the answer is in fact extremely simple: coronary arteries (irrigating the heart muscle) are terminal vessels. This means that when a coronary artery sustains damage, the area it was irrigating becomes biologically dead with a very limited potential for recovery. The affected area turns to fibrous tissue produced by cells with much lower oxygen requirements than cardiomyocytes.
A fractured bone is not dead at all, in most cases. Put a fracture under a microscope, and you will see plenty of cells performing heavy duty. That is because the area, although damaged, still receives nutrients and at least some blood.
However, there are special cases:
bone that is terminally vascularized: such bone regions will die when fractured, since they receive no more nutrients and oxygen. The classic example is fracture of the scaphoid bone in the wrist. Some types of fracture in this bone shear the nourishing artery, and the bone dies off instead of healing.
slowly progressive ischemia due to atherosclerosis: when a coronary artery progressively gets clogged instead of this being a sudden event, the cells inside the danger territory secrete messengers that will activate new vessel growth. This phenomenon is called collateralization, and will allow a subset of the cells at risk to survive when the coronary artery gets completely clogged.
Now about the stem cell issue: I seem to remember that stem cells do exist in the heart, but this is less pertinent in this case, since even stem cells need oxygen and nutrients to survive.
Ignoring the actual physiological mechanism(s) for why, consider that from a natural selection point of view, there probably isn't as much incentive for a body to heal itself of a condition that largely affects post-reproduction age individuals. While healing a broken bone would likely allow a young person to further reproduce, healing a heart ailment would have a disproportionately lower chance of doing so.
In simple terms, heart injury, most likely to be myocardial infarction (heart attack) involves death of the vascular heart tissue. Thus the word infarction. Death of a tissue just simply leads to the production of a fibrous scar. Therefore the heart muscle cannot repair that area of injury to 100% as before.