Both have their place but it really depends on what is important to you.
Various tests have shown that Micropython can be many times (somewhere between 10 and 100 times depending on the test) slower to execute. Also there may well be more libraries available to you in C than Micropython (although you can always build your own variant of Micropython to include the C coded library).
Also there needs to be a Micropython version that runs on your MCU, unless again you want to build your own variant that handles the low-level mappings to GPIOS and other other modules within the 'machine'.
My background is in C and therefore I prefer to use that because all you need is a compiler that creates the correct machine code, but I do agree that...