Internally, it converts to an OLEDB recordset, then loads the table.
I've not given it much thought, but I'd assume this is quicker when run on the SQL Server box rather than the client. Plus you can manage constraints that you can't with normal INSERT