Why don't metals bond when touched together?

I think that mere touching does not bring the surfaces close enough. The surface of a metal is not perfect usually. Maybe it has an oxide layer that resists any kind of reaction. If the metal is extremely pure and if you bring two pieces of it extremely close together, then they will join together. It's also called cold welding.

For more information:

  • What prevents two pieces of metal from bonding?
  • Cold Welding

They do, as Feynman said. If you have two copper pieces perfectly polished and you put them in contact, they will weld automatically (the copper atoms won't know what piece they belonged to).

But in real life, oils, oxides and other impurities don't allow this process.

Found it! Read Feynman's own words (where $\mu$ = coefficient of friction):

If we try to get absolutely pure copper, if we clean and polish the surfaces, outgas the materials in a vacuum, and take every conceivable precaution, we still do not get $\mu$. For if we tilt the apparatus even to a vertical position, the slider will not fall off—the two pieces of copper stick together! The coefficient $\mu$ , which is ordinarily less than unity for reasonably hard surfaces, becomes several times unity! The reason for this unexpected behavior is that when the atoms in contact are all of the same kind, there is no way for the atoms to “know” that they are in different pieces of copper. When there are other atoms, in the oxides and greases and more complicated thin surface layers of contaminants in between, the atoms “know” when they are not on the same part. When we consider that it is forces between atoms that hold the copper together as a solid, it should become clear that it is impossible to get the right coefficient of friction for pure metals.

The same phenomenon can be observed in a simple home-made experiment with a flat glass plate and a glass tumbler. If the tumbler is placed on the plate and pulled along with a loop of string, it slides fairly well and one can feel the coefficient of friction; it is a little irregular, but it is a coefficient. If we now wet the glass plate and the bottom of the tumbler and pull again, we find that it binds, and if we look closely we shall find scratches, because the water is able to lift the grease and the other contaminants off the surface, and then we really have a glass-to-glass contact; this contact is so good that it holds tight and resists separation so much that the glass is torn apart; that is, it makes scratches.

Source: http://www.feynmanlectures.caltech.edu/I_12.html

Two reasons:

  • Oxides
  • The roughness of the surface

If the surface is rough, then the majority of the surface is touching the air gap between the two, not the opposite surface. A bond may form at the touching "peaks", but it will be weak compared to the rest of the metal because a very small fraction of the surface has actually bonded.

In addition, metal surfaces adsorb oxygen and form oxides/oxygen monolayers on the surface. This is actually a visible process with metals like sodium and potassium (the color changes in a short time period). But for all metals, there still is oxide formation to a sufficient extent, because the edge metals have not completely fulfilled their valencies. Even a monolayer of adsorbed oxygen is enough to stop the surfaces from welding.

If two clean, flat metal surfaces are brought together (usually in a vacuum), they do indeed cold weld. This is hard to achieve for macroscopic objects because of the perfect flatness requirement, but is still possible. In practice, it is more commonly used for welding small things.