The different colours appear due to various reasons, but generally speaking they appear because some layers of ice form in special conditions. Blue stripes are the most common, and they appear when crevices are filled with water and they freeze so fast that no bubbles are formed. However, things are different with the other ones.
Green appears because the water that freezes is extremely rich in algae, hence the colour. Brown, yellow, and even black stripes are caused by sediments picked up along the way when the ice sheet was sliding downhill.
They’re not exactly rare, but quite uncommon still. It was Norwegian sailor Oyvind Tangen, on board a research ship that first photographed and described these glaciers (from what I was able to find, I’m not quite sure however). Anyway, they’re an astonishing sight by any standards, and it’s easy to understand why sailors have pictured them as humbugs. If you’re ever lucky enough to go to Antarctica, keep an eye out – you just might see one of these awesome wonders !