-webgl - это низкоуровневое программирование графики. На чистом webgl быстрее работает(относительно фреймворков), но сложно и долго писать.
-three.js babylon.js - это по сути API к webgl . т.е. более высокоуровневое программирование графики. А здесь проще чем на webgl, низкий порог вхождения, но естественно с некоторыми накладными расходами.
- canvas - это то на чем все это в браузере отрисовывается.
по мне так webgl чистый нужен когда нужно что то сложное/быстрое.