When a Shepherd villager is leveled up to ‘Expert,' two more trade options come up, with two possibilities for each trade option; one of 6 dyes, or one of 16 banners. I have set up over 100 villagers to trade with, the majority are in creative (though I first believed there was a problem on my Minecraft realm). I set up 30 more villagers today in a single-player creative world, then leveled them up to Expert so I could document their results. I found that 83% of the available trades were for banners; of the remaining 17% (which were dyes), there were only brown, cyan, and magenta dye trades present. This matches the experience I had in survival, and all previous trades I had experimented with.
From the available information online regarding Shepherd villager trades, the results should be more randomized, and should have included at least a few of Green, Blue, and Purple dye trades.
Environment
Overworld (Survival & Creative)
Unable to confirm, green, blue, purple, and other dyes do show up as trade options (somewhat frequently).
You might be extremely unlucky? (Luck based issues aren’t bugs)