A few reasons:
1. Why would you? Having a bunch of nodes communicating with each other makes pretty graphs for a dissertation, but if you really just want to get something done, calling a library is much easier than messing with launch files and dealing with message passing and asynchronous behaviour. It brings in a ton of new complexity to solve issues which are only complicated to people who don't know how C++ threads or coordinate systems or other robotics bread and butter work. It reminds me of that quip, "You had a problem and tried to solve it with ROS, now you have 2 problems."
2. ROS is designed as a framework, not a library. This means that it's very hard to pick and choose the pieces you like, rather it is all or nothing. It also ends up with a lot of lock-in, and as a result code written for ROS is very hard to take into another context.
3. A lot of ROS tries to just 'make it work', regardless of if things are only partially configured, misconfigured, etc. If this is a one-off proof of concept then this is fine. If someone dies because things are misconfigured, I want the tools to complain very, very loudly, and preferably not work at all.
4. Unit testing in ROS environments is a pain. It is more oriented around doing simulation, but the simulation is the top level thing. This means something like business logic that depends on the simulation working in a certain way, or on the outputs of the simulation, is hard to verify the correctness of. This is unacceptable in a business environment.
5. Tooling. Why does it need its own package manager, its own build system? It even has its own runtime dependency analysis. Just use CMake, and the OS tools. Please please please. Deployment is such a pain!
Anyways this is just off the top of my head. Consider the later points, and then go back to the first one, of "Why should industry use it?" To me, there isn't sufficient motivation for the added complexity ROS brings.