Yes, this is standard practice at any major US software company and is part of your employment contract.
In some cases it really does make sense, where you have privileged knowledge by working at the company and directly competing publicly using that unpublished insider knowledge is pretty obviously a bad idea. A lot of companies actually have pretty legitimate review boards that will quickly approve anything not directly competing for public release.
On the other extreme, some companies basically refuse to approve anything for external release: my father as an EE at IBM wasn't allowed to release templates for making labels for homebrew beer bottles. An ex-IBMer on my current team worked on a relatively small piece of software that would have been great to open source (and really not competing with any of IBMs initiatives) but IBM wouldn't allow it, nor did they want the project to be continued or used in any meaningful way.
In some cases it really does make sense, where you have privileged knowledge by working at the company and directly competing publicly using that unpublished insider knowledge is pretty obviously a bad idea. A lot of companies actually have pretty legitimate review boards that will quickly approve anything not directly competing for public release.
On the other extreme, some companies basically refuse to approve anything for external release: my father as an EE at IBM wasn't allowed to release templates for making labels for homebrew beer bottles. An ex-IBMer on my current team worked on a relatively small piece of software that would have been great to open source (and really not competing with any of IBMs initiatives) but IBM wouldn't allow it, nor did they want the project to be continued or used in any meaningful way.