I think you mean - difference between the "User Written Code" (not transformation) and Transformation created by Transformation generator Wizard - Please correct me if Im wrong.
There is a big difference between the two.
In then "User written code" you can not control you input etc. properties (as metadata), where you in a "User written transformation" can specify your properties (code options and input/output data) as metadata - This way you can still perform i.e. impact analysis. The ETL developer will have to provide this information as you would in a out-of-the-box transformation through drop-down-boxes.
By using "User written transformation" you give the project good metadata and good flows.
Generally you should never use "User written code", "included code" or "macros" (sometimes you will have to anyway) and only write generic, easy maintained and documented "User written transformations".
I guess that the DI Studio documentation gives a quite good description of this. But in short:
If you mean User Written Code: allows you to run your own SAS code. This transformation will not be reusable. The code itself can be reused by storing as a external code (not recommended).
By using Transformation Wizard, you can create a template Transformation, that i reusable, in which you can specify parameters that you program can take into account.