Q: Do I need parenthesis in function calls (why "grid on" works)?

There are a lot of functions "designed" to be used without parenthesis (LOAD, SAVE, PRINT, GRID, PROFILE, etc.). But in fact, they are no different from others. Try this:
title 'Figure 1'
xlabel Time
ylabel Temperature
Matlab treats everything that follows the function name as a space-separated argument list (if you want include spaces in an argument, use quotes). Arguments are always passed as strings, so you have to use parenthesis with any numerical arguments. But if a function requires only string arguments, you can always omit parenthesis (and often quotes too!)

Suppose you are tired of typing set(gca,'property','value') evry time. Write a function

function aset(varargin)
% ASET 	sets properties of the current axis
%	alias to set(gca,varargin{:});

Now you can save yourself some typing:
aset visible on
aset layer top
aset tickdir out yaxislocation right
Note: no parenthesis, no quotes...