The short answer is we don’t know. The longer answer is we don’t know for sure, but people have suggested a number of possibilities.
The Romans called the town Londinium, and this was passed down to the Saxons as Lundenwic, but the precise origins of the name are unclear.
Geoffrey of Monmouth, a 12th-century author, attributed the founding of London to the mythical King Lud, hence ‘Kaerlud’ (or ‘the fortress of Lud’), while later writers suggested the presence of a Celtic war-leader by the name of ‘Londinos’. Neither suggestion has gained wide acceptance.
It may alternatively represent a (Latin) corruption of a named British settlement existing on the banks of the Thames, or it may have derived from a native term for a particular geographical feature, such as represented today by the Welsh for a lake or pond (llyn) or the Cornish for water (lyn).