TL;DR
JavaScript のコンパイラ。新しい構文や JSX で書いたコードを、実行環境で動く JavaScript に変換する。
なぜ必要か
当初は、最新の ECMAScript で書いたコードを、Internet Explorer のような古いブラウザで実行できるコードに変換するために使われていた。React が登場すると、JSX を JavaScript に変換する主要なツールになった。
注意点
今は TypeScript 自体が TSX を変換したり、特定のバージョンの ECMAScript に向けてコンパイルしたりできる。そのため、Babel はあまり使われなくなった。
ただし、TypeScript と併用すれば、Babel のプラグイン機能の柔軟性を活用できる。styled-components はその例である。