Arduino IDE take the sketch.ino, add few lines on it top and sends it to C++ compiler.
You can see that, if you set all warning on and compile any sketch (maybe Blink.ino), then near the same start of the listing you may see lines like
Compiling sketch...
some/long/path/...arduino7/bin/avr-g++ many params /temp/path/sketch.ino.cpp -o /temp/path/sketch.ino.cpp.o
Compiling libraries...
Compiling core...
So we see sketch.ino.cpp compiled by g++ (which is C++ compiler).
And if you compare the sketch.ino and the new sketch.ino.cpp under the temp directory, you will se, that there is only few lins added on the top.
Arduino IDE does it to help hide it uses C++ user to be not afraid of programming.
Which brings some problem there too, see Gammon Forum : Electronics : Microprocessors : How to avoid the quirks of the IDE sketch file pre-preprocessing
Many examples have something like Serial.begin() in setup() - clearly C++, not plain C.
But nearly all plain C constructions compiles in C++ with similar meaning. (Not all and there are some small differencies, but new user usually does not trigger that.)
Examples are usually writen as simple as possible, so not much of C++ is visible at first look (eg. Serial.print ). Also new users try to copy this style and usually write something simplified, which may look like plain C, while it is actually C++.
Arduino is mostly targeted to beginners, who do not want to learn programming, who do not want to detaily understand, what they are doing, but they have some visible results just now (or even sooner), regardles how many problems this may bring later. (like not talking about C++, calling programs "sketches", using some arbitrary number for pins, instead of port/bit and so on and so on ...)
(Well it did grow up so much, that it offers something even to more advanced users now. But the roots are to offer something to non-technical people to make blinking LED easy task.)