With platforms like Shopify it can look like you can just write custom modules or apps and extend the system however you like. On the surface that sounds very similar to how modules work in Drupal, but once you start digging into how it actually works, it becomes clear that the development model is very different.
Instead of extending the platform directly, most custom functionality ends up living in external applications that talk to Shopify through APIs and webhooks. Those applications might be written in Node, Ruby, or whatever backend stack you prefer, but they are still separate systems that have to be deployed, maintained and integrated properly.
So instead of extending the platform itself, you're effectively building a second platform that sits next to it.
Now don't get me wrong, APIs are great, but this does mean that building deep custom functionality becomes more complicated than just writing a module and plugging it into the system.
And there is also a practical point here that often gets overlooked.
Most web development agencies have a lot of experience working with PHP based systems. Drupal, WordPress, Laravel, Symfony, all of these sit in roughly the same ecosystem. Once you move into the world of SaaS integrations and external applications, you're suddenly dealing with a completely different development model, and that often means a smaller pool of developers who are comfortable building and maintaining those systems.
Which is fine if your requirements are simple, but if you're trying to build something unusual it can quickly become awkward.