Object and mesh are 2 different things. An object is a kind of shell that is defined by the mesh it contains and its 3 transformation datas (Location, Rotation, Scale). Even though when you create a new object it necessarily contains a precise mesh, you can later change this mesh for whatever mesh you want, for example several objects can share the same mesh.
Changing the scale of the object is not the same as changing the scale of the mesh:
If you change the scale of the mesh (in Edit mode), the change won't affect the object scale and it will be replicated on any other object that share the same mesh.
If you change the scale of the object (in Object mode), the mesh remains the same even though it appears stretched in your scene, it's only the object scale that has been changed, and the mesh won't appear stretched in any other object that would share it. If you take a look into the N panel you'll see that the Scale value is not 1:1:1 anymore. If you want to reset its scale back to 1:1:1, press AltS. If you want to make its current dimenions its new 1:1:1, apply the scale with CtrlA, but in that case it will definitely change the scale of the mesh itself.
Scale will only take into account the scale that you've made in Object mode, while Dimensions will take into account whatever changes you've made, whether it is in Object mode or in Edit mode.
To sum it up, Scale is relative to the object itself while Dimensions is relative to the scene unit.