Here's more detailed documentation from the Delphi 2007 help file:
Use the Finish property so that the provider saves the prepared (or compiled) version of the request specified in the CommandText property before the first execution of the Command object. This may slow down the execution of the first command, but as soon as the provider compiles the command, the supplier will use the compiled version of the command for any subsequent executions, which will increase performance.
If the property is False, the provider will execute the Command object directly without creating a compiled version.
If the provider does not support team preparation, it may return an error if this property is set to True. If the provider does not return an error, it simply ignores the command preparation request and sets the Prepared property to False.
This basically means that the SQL statement has been compiled (pre-parsed, marked, and parsed). When a query is used more than once, this compiled version can be used every time, simply substituting the parameter values, not recompiling all the instructions and do other work.
source share