What you are referring to is often labelled shared source. For instance, Microsoft offers the Windows source code to some customers for reference purposes, but that source is not allowed to be built or distributed.
It's fine to build a business model around your open source project. It's fine to charge for builds as your business model.
What is not fine is purposefully obfuscating the process needed to build that open source software to encourage users to just pay for the builds. That's shady and counter to the spirit of open source.