This is a complex question that doesn't have a great answer - while Ben's answer does give some good explanations for how the system has worked in the past and it's worth considering and following that guidance - we've changed how and when we take sites out of beta in recent years and that's impacted many of our older sites.
For the longest time, the guidance was that a site had to have various metrics (the stats in Area 51 Ben cites), with the most important being 10 questions per day. We set this restriction because we thought about sites leaving beta as ones that should be very active rather than relatively slow at least in part to the fact that leaving beta meant a site would have the higher privilege levels of graduated sites.
We were also limited in how many sites could leave beta at any given time by the fact that "Graduation" was tied to having a site theme created for the site by our design team, which was something that was very difficult to keep up with for us. So back in 2015 we made a change - Graduation, site closure, and a clearer outlook on the health of SE sites
While we didn't remove the beta label from sites, we recognized that our practice of leaving sites in beta was having an impact and so we went to the effort of trying to help sites understand that being small was OK! That we wouldn't be closing a site down for being low-activity unless the moderation of the site started to fail.
Shortly after that discussion I (as a user, not staff) proposed the idea of separating site designs from graduation so that more sites could leave beta sooner without having to wait for artwork. This was discussed and then made into policy, so back in September 2015, we kicked a handful of sites out of beta without site designs.
In 2017 (still as a user) I asked a new question - Let's break up with "Graduation" and remove a bunch of "Beta" labels - essentially, proposing the idea that the CMs consider changing their way of determining when a site should leave beta.
After getting hired, I worked with some coworkers to consider a new site lifecycle that included removing sites from beta sooner, without considering their stats on Area 51 at all. While that project was cancelled before it was completed, we removed the beta label from 29 sites two years ago because we felt that seven years was too long to be in beta.
Now, we're on the cusp of making such a change again. In the next six months or so, I'm expecting that we'll be able to remove the beta label from most sites across the network because they are - as Robotics is - not really a "beta" site and we need to change our practices about keeping sites in a perpetual beta phase.
We'll have more on this in the coming months but I want you to know that we, as a team, don't see beta status as a detriment to any site - though we know many of the people using the sites do - and that's something we want to change. We don't really treat beta sites any differently than non-beta sites.
In the end, there's nothing that y'all have done or failed to do that's kept you in beta - it's on us and we're working to address it.