Is there a performance difference in the 2 temp table initializations?
Is there a performance difference between the 2 initializations?


No. There is no performance difference. If you use set statistics time, io ON and check there is no CPU or IO involved

 SQL Server Execution Times:
   CPU time = 0 ms,  elapsed time = 0 ms.

 SQL Server Execution Times:
   CPU time = 0 ms,  elapsed time = 0 ms.



  What purpose does the ,'u' piece of code serve in the first statement?


The syntax for object_id is 


  OBJECT_ID ( '[ database_name . [ schema_name ] . | schema_name . ]
        object_name' [ ,'object_type' ] ) 


The u specifies its a user object. It is called user defined table in sys.objects

I think it is good coding practice to define what you are doing. So in the 1st example the developer is saying that if #TempTbl table exists then drop it. I have seen poor naming where people name views like tables, do not use schema prefix and other bad habits !

In SQL server 2016, you will see a new syntax ..

DROP TABLE IF EXISTS