The technique is fairly advanced but you could write the program to additional flash memory like MTB usually does.
On Fanuc it's called OMM (Order Made Macro). On boot-up it usually shows OMM [version].
It's probably possibly to install flash memory module/PCB or EPROM/flashROM into the machine to hold your custom data.
You would probably need Fanuc developer tools to complete the task. If you want to go this way you will probably need to make an appointment to talk to Fanuc tech support in person and the solution will probably not be cheap
You can also enable a parameter password that disallows reading/editing the program unless the password is entered for programs numbered from 9000 to 9999.
See parameters 3202/3210/3211
Both of these are one-off long term solutions. If you need to modify the code daily it will become tiring very quickly.
Protecting a program that is used for one job is pointless in my opinion.
Bear in mind that if you can write the program there is someone out there who is smarter and can also write it, probably better and more efficiently and at a cheaper rate. You would be better to spend your time keeping the customer happy rather than preventing them access to something they have paid money for.
Also bear in mind that protection is only as good as the person that designed it. Nothing is uncrackable given time and motivation and money. It wouldn't be difficult to get access to anything stored in the memory with the right hardware tools (I've been doing similar things for ~10 years in another unrelated field)