Cannulas are not effective above medium altitudes, and the FAA prohibits their use above 18,000 feet (FAA brochure on Oxygen Equipment, PDF). Because they only place oxygen at your nose, you don't receive oxygen when talking or breathing through your mouth, while a mask covers both nose & mouth. This is, obviously, not great.
Cannulas are also less comfortable than a nice-quality mic/mask, but that's my personal opinion. A lot of pilots do prefer cannulas for comfort at lower altitudes, as they're easier to don and allow you to continue using your normal headset mic boom. For most pilots, especially those flying normally aspirated aircraft types, it's a matter of preference.