GDevelop is capable to support most gameplay mechanics it is not so much what you need to worry about. As to why choose GDevelop over Godot and Unity and vice-verse, require very specific needs to consider that one or the other can not support.
The first thing you need to decide is what is your primary platform that you want to target. It is easy to say, you want to target all platforms, but you always need to pick 1 that is the primary target.
Then need to consider the fact, GDevelop has a very strong HTML5 support, Godot has strong desktop support and Unity has very strong mobile and game console support and also VR and AR support. Yes technically you can target all platforms with any of the engines, but each engine has weak and strong points and you should pick the one that is stronger on the platform that you primarily want to target.
Then you need to consider what workflow do you prefer.
GDevelop require no coding, very convenient, drag 'n drop game making, it is best if you prefer a linear workflow where you program your entire game from a single entry point. Meaning you don’t need to divide your logic in to separate pieces, you can do everything in one place.
Godot is more object oriented, you need to create objects and then program those individual objects and divide your logic in to pieces for each individual object.
Unity offer a component based workflow meaning you can program components to do certain tasks and you can attach this components to any objects to be effected, controlled by the component which helps reduce the amount of code you need to write.
Of course if you really want to, it is possible to do any of the workflow in any of the engines, you can do object oriented and component based in GDevelop using custom behaviours and functions and you can also put everything in to a global script in Godot and Unity, but each engine support 1 workflow better than the other 2, so you should pick the one that fit your workflow better.
Then you should consider monetisation options, how do you prefer to make money, If you want to sell your game the traditional way, any engine is fine but in case you would like to interface with 3rd party API’s and use 3rd party payment processors, in-game purchase, DLC’s you need to consider which engine offer support.
GDevelop support ads with AdMob and ads only no in-app purchase and DLC support.
Godot has partial support for AndroidBill on Android and StoreKit on iOS and AdMob but it is partial support meaning will certainly break and won’t work but sounds better than saying “no support”.
Unity is fully support everything.
Then you need to consider support.
GDevelop is developed in spare time by contributors who don’t get paid to work on the engine, also rely on lots of 3rd party libraries that also developed in spare time by free contributors. While, it is certainly offer a very dynamic, fast growing experience, when you have a problem then unfortunately you have the problem, there is nobody to offer support. You are alone. Of course contributors and developers are nice around here, love to help you but you can not blame them if they don’t help you.
Godot also rely on free contribution a lot and the same apply as to GDevelop. But the core engine is developed by paid developers and if you have a problem there are people who get paid to listen and fix problems you have. Of course it doesn’t mean all your problems get fixed but the chance is still greater than with GDevelop that rely 100% on free contribution only.
Unity is a commercial engine, paid developers working on the core and lots of paid developers working on paid extension. if you need support, there is more likely someone listening to provide support and get your problem fixed. But of course it does not apply to free extensions, free extensions just the same as free contribution, you may or may not get support when you need it but at least Unity do offer the option to pay and get the the support you need which is very important when you are not making a game just for fun but you have a budget and bills to pay.
Obviously if you don’t mind coding in C# and the component system and to pay royalty, Unity is the winner here and probably this is why not so many people publish complex, commercial 2D games with GDevelop or Godot because almost everyone want to target Xbox, iOS and Android with in-game purchase and paid DLC’s in the first place, in which case Unity is the best option. But it doesn’t mean the others are not capable, only that Unity is more capable than any other free engine ever be.
Of course there also always be people who really happy with free engines and develop something amazing that may raise the question why those people did not choose Unity, and the answer to that, probably because those people did not like something about Unity and they did not need it but it doesn’t change the fact Unity is better than most free engines.
So I would recommend to try all 3 engines. There are free 30-60 minutes tutorials for all engines to make almost every type of game especially platforms, try them all, complete some tutorials, play around with each engine a few days and then you can make a more educated choice which engine fit you and your project better.