I'd have put it the other way around. Small startups can't afford specialists, not in terms of salary, but in terms of output: there's too much stuff to do and the specialist work (whatever it is) isn't a large fraction of the total.
The larger and more mature a company is, the more able it is to afford a job title which specializes in something narrower. It doesn't need to be super large; if the product is very technical, a specialist might be necessary.
The situation can be a bit different in a large company. They might want to hire a Java developer, or a front end developer. These are specialist roles, in that the people in them have chosen a professional specialism. They're commodity specialists though, so common that they're not thought of as special. It's more rare that they want someone who can do devops, UI, JS, RoR, Java and C++ - this is a generalist.
Yup, this is spot on. In our startup one of the challenges to hiring isn't a lack of money or need, but rather that we need people who can bounce around a lot of somewhat specialized topics, while generally no one topic is big enough to justify a full-time specialist.
The larger and more mature a company is, the more able it is to afford a job title which specializes in something narrower. It doesn't need to be super large; if the product is very technical, a specialist might be necessary.
The situation can be a bit different in a large company. They might want to hire a Java developer, or a front end developer. These are specialist roles, in that the people in them have chosen a professional specialism. They're commodity specialists though, so common that they're not thought of as special. It's more rare that they want someone who can do devops, UI, JS, RoR, Java and C++ - this is a generalist.