Vinyl is great for indoor or outdoor use, and it is water proof.
No curl vinyl is used for high end displays and banners indoors.
Polyester fabric is great for both indoors and outdoors. When you use this material while printing, a direct dye sublimation is created, and the ink goes through the fabric instead of just staying on the surface. Polyester gives a high quality look, and brightens colors as well.
Canvas, is for indoor use only. If you want to create a high resolution piece with visual appeal, I would go with that. Also, if you finish it off with a semi gloss finish it will give your banner a professional, hand painted look.
Hope this helps you!