That question has been asked, many times, over the course of my 20+ years of using the product and there are a lot answers with varying degrees of truthiness to them.
The BASIC language has fallen out of favor and it really is no longer being taught. So there is no younger generation of developers using it. Even though Xojo is a compiled language there is still some hesitancy to use it.
The Xojo 3rd party ecosystem is minuscule in comparison to many other languages/environments. In the old VB6 world and now in the .NET world (just to keep it on Windows) there are dozens of big name alternatives for controls, libraries, reporting tools, database tools, etc. Xojo just doesn’t have the same depth. You’re lucky if you can find one or two alternatives and the good ones cost money.
The IDE costs money (once you want to compile). There are many languages that provide an IDE that are free or nearly free. Granted, Xojo is one tool that’s relatively easy to learn but there are a ton of options out there for other languages.
The community is loyal, but tiny. Other languages have thousands of open source projects to choose from. The Xojo community just isn’t large. This affects their income, number of developers, 3rd party developers working in the environment, consultants, etc.
Lack of training materials and books. If you’re looking to learn a language and start looking around at udemy and other online schools you will be hard pressed to find anything Xojo related. As someone who once had over 200 videos available for training I was one of the few that had anything. And when API 2 came out every single one of those videos became obsolete. You look on Amazon there’s some very old Xojo books available and the ratings are middling.
Lack of features. Xojo is a cross-platform programming tool so by its nature there’s often a least common denominator approach when it comes to controls, libraries, and features. Not to say that Xojo doesn’t offer a lot but if you’re primarily a Mac or Windows developer then there are more complete environments for you for those targets. Xojo gives you what I’d say the 80% solution and if you try real hard you can probably get your app to 90% equivalent to a native application. Others will disagree with this assessment, I’m sure. I would say this is even more pronounced in mobile. iOS is missing a fair number of features you can get with Xcode and other tools, and Android is still in its infancy (can’t really speak to how good it is since I’ve not used it).
Bugs. Xojo does an admirable job of putting out new releases with new features. But with a small development team they often fall behind on fixing bugs. Since I’ve been using Xojo they went from two targets (Mac and Windows) to desktop, web, and now mobile with no increase in development staff. So those developers are doing more work on more targets in an ever shifting environment.
For anyone that was an original Xojo for Web user, the transition to Web 2 came about with zero upgrade paths. The solution then, as is now, is to rewrite your app from Web 1 to Web 2. For many that just wasn’t possible nor palatable so they’ve moved on to other web technologies.
The more recent API2 is decidedly mixed results for Xojo developers. Anyone that had projects of any size they found themselves unable to upgrade to API2. This leaves out the newer Desktop controls as well. Upgrading requires, in many cases, to go line by line to make sure the logic is the same. Don’t get me going on 1 vs 0 functions.
At the end of the day, if Xojo works for you and you’re happy with it that’s great! But these are some of the reasons why it’s never really taken off. Others will have different reasons and could probably offer some specific reasons but those are some of mine.