the difference between these is that: the first image, the simple many-to-many association indicates that there can only be one association between an instance of user and product. The second instead indicates that there can be multiple associations between the same user and product. That is, if we have user1 and product1 they can also create two associations. The third instead I can't explain its usefulness, can you tell me?
You are right. There is no meaningful difference between 2 and 3.
There used to be, but it was thrown out by the UML taskforce in issue UML22-21, albeit for very good reasons. Since this effectivly makes association classes obsolete, issue UMLR-443 tried to get it back in, but this is still open. So, it is really up to your preferences.
Please note, that in the first case, the associations ends could be {non unique}
(default is {unique}
). Then there could be many links between any pair of instances. And then all three diagrams mean the same.
PS: You write "there can only be one association between an instance of user and product". "association" should be replaced with "link". Remember that links are instances of associations.