It also appears that you must be a certain level or have progressed to a certain point in the game in order for these merchants to sell legendaries. If you are a relatively slow player and take your time, you can easily get two restocks per level. Their inventory seems to restock when you gain a level but also every few hours in-game, so you may want to try checking them once when you level up, and once again before leveling up. Reloading the save and initiating the trade again will spawn a new legendary item. If you have plenty of gold or are able to pickpocket them, it is a good idea to save before trading with them. Several merchants throughout the game sell legendary items.