I have not determined the exact difference MATLAB's database connection's execute function and Oracle SQL Developer, but I have resolved the issue with the help of MATLAB support. My creation statement lacked the keywords "ON COMMIT PRESERVE DEFINITION". Early tests used "preserve rows" which was not appropriate in these circumstances.
% -- EXAMPLE CREATE STATEMENT IN MATLAB M-FILE
% CREATE PRIVATE TEMPORARY TABLE
% ORA$PTT_MY_RESULTS
% ON COMMIT PRESERVE DEFINITION AS (
% SELECT [COLUMNS]
% FROM SOME_TABLE
% WHERE [FILTERING CLAUSES]
% );
I cannot create multiple tables in a single creation statement if they reference one another (in order). Executing the creation statements sequentially requires pausing for at least 1 second, otherwise Oracle issues an error "ORA-01466: unable to read data - table definition has changed".