They are definitely different, but soft body simulation is very slow compared to cloth.. why?
In short, soft bodies are compressible while cloth is not. All other features are the same.
A Cloth Simulation essentially models the object as a bunch of balls (vertices) connected to each other by fixed-length rods. Thus, for computational purposes, the simulation can treat the internal distances between points as a constant, and only has to calculate interaction with other objects.
A Soft Body Simulation, on the other hand, models the object as a bunch of balls (vertices) connected to each other by springs. So now, not only does Blender have to compute the interaction of the object with other objects, but also has to compute its own internal reaction and the spread of force applied at one point across all of those little springs, which is much more complex.
I don't know the exact complexity of the algorithms Blender uses for these simulations, but it's essentially the difference between a linear relationship and a differential equation.
I'm not sure about speed and optimization but there are some differences between the two. Here is what the documentation says about the softbody simulator:
A Soft Body in general, is a simulation of a soft or rigid deformable object. In Blender, this system is best for simple cloth objects and closed meshes. There is dedicated Cloth Simulation physics that use a different solver, and is better for cloth.
This simulation is done by applying forces to the vertices or controlpoints of the object. There are exterior forces like gravity or forcefields and interior forces that hold the vertices together. This way you can simulate the shapes that an object would take on in reality if it had volume, was filled with something, and was acted on by real forces.
So basically the soft body measures where each vertex should be pushing the vertices around it. Kind of like a bunch of opposing magnets connected by string.
The cloth simulator works more along the lines of each vertex having mass and simply falling and folding without much care as to the other vertices around it (except of course for collisions). It's more like a bunch of marbles connected by string.
Soft bodies are generally better for enclosed meshes (i.e. no non-manifold edges) and things that will bounce or jiggle or conform to its surroundings.
Cloth is better for non-manifold meshes that will fall and collide with other meshes. It works better with things like clothing, flags or bed sheets.