Well, we've had this discussion one or two times before. The short version is: Because i don't want it to be OS. I'm not against OS...not at all. I've open sourced all my stuff (and got almost no feedback on that...) except for jPCT itself. I like the continuity of jPCT and i think it's easier to maintain this in a closed source project. OS doesn't prevent a project from dying or at least suffering...Xith, JME and OpenMind (anybody remembers that one...?) are great examples of this. All OS, all going down once the main developer(s) left and all including some functionality that worked once and got broken after the initial developer left and nobody took over to fix it.
There are several ways one can contribute to jPCT. It's possible to write demos for it (closed source, open source...i don't care), it's possible to add functionality like new loaders, some nifty shaders, cool post processing effects...jPCT provides enough hooks into its internals to do this IMHO...yet virtually nobody does. Maybe because the project itself isn't OS, but to me, this is just a cheap excuse if one really feels the urge to contribute.
To my experience, people do a lot of talk and often fail to deliver anything after that except for some dubios "code cleanup"-work that usually means to break the existing API for the benefit of a better gut feeling of this one person. I think that i can spend my time better by developing the engine itself than taking care of this.
And last but not least, i've sold two (IIRC) commercial licenses with the sources included.
If i'll ever lose interest in the engine, i'll OS it. However, this isn't the case right now.