My suggestion should be use C, is more portable. You can start using Fusion-C.
You can also combine: write performance critical parts in assembler and the glue code in C.
Bingo!
C is not more portable than assembler if you make games for MSX, SG-1000 and Colecovision.
Assembler is faster, economical in memory and more adapted for MSX. This is the best choice.
Assembler is not much more complicated than C if you have a good library. If you choose the C, you will still need to learn assembler.
The strcuture handling and programming logic is much easier, faster and modifiable (as you modify code and the compiler generates the asm for you) on C.
Modifying code on ASM takes much longer because if you change lines, then you have to "fit" again the whole.
All depends on what you want to do and from which knowledge of coding and of the msx systems you start.
If you are a newbie probably it is better to start with C (this version that is actively supported on this forum https://www.msx.org/news/development/en/fusion-c-is-available )
Once you have started to understand hands on how the msx architecture works, you could start coding in assembly.
Also in this case, an effective way to use ASM is within C programs for the time critical parts
C is usually more flexible and easier to modify