Die Thread-Klasse ist eine direkte Abstraktion deiner CPU-Cores. Da unter einem Quad-Core z.B. nur 4 "echte" Kerne zur Verfügung stehen, du in einem Programm jedoch mal 10 Threads erzeugen möchtest, greifst du theoretisch gesehen auf 6 "virtuelle" Kerne zu.
Der Sinn hinter dem ganzen ist, dass dir die Thread-Klasse eine Ebene zum arbeiten anbietet, das Runnable, das hier verwendet wird, ist, wie du sagst, ein Interface mit der Run-Methode. Da Runnable aber nun rein auf Java-Seite anzusiedeln ist, die Thread-Klasse einen Spagat zwischen Java-Welt und der Maschine, ergibt sich bereits, dass die Thread-Klasse nicht ohne weiteres klonbar ist.
Im Klartext: Eine Thread-Klasse ist nicht wiederverwendbar, hauptsächlich, wegen diesem Bezug auf dein System.
Die Runnable-Implementierungen jedoch kannst du immer wiederverwenden, musst zur Ausführung lediglich eine neue Thread-Instanz erzeugen. Gleiches gilt auch für Threadpools, welche auch immer eine Runnable-Instanz erfordern und intern immer wiederverwenden können.