Non è del tutto corretto...
Per capire la differenza va intanto saputo cosa vuol dire "compilare". Quando compili un programma c'è un software che prende il codice che hai scritto e lo converte in linguaggio macchina. Questo linguaggio è di solito specifico per ogni tipo di processore, quindi se cambi famiglia di processore (ad esempio se passi dall'architettura ARM ad Intel) il software dovrebbe essere ricompilato, e non è neppure detto che il codice sia portabile in maniera idolore.
In parole povere il problema era l'enorme varietà di dispositivi su cui Android sarebbe stato installato, quindi scelsero di non compilare il software ma di farlo eseguire ad una macchina virtuale, ovvero un software apposito che si interpone fra l'hardware e le app. Se cambi processore/scheda video/etc. in pratica è soltanto questo software intermedio che deve essere ricompilato (ed è incluso nella rom). Ecco cos'è il Dalvik.
Questo però aggiunge un grado di complessità al sistema in quanto una app deve passare prima da dalvik prima di arrivare al processore, con ovvie riduzioni in termini di prestazioni e consumo di batteria.
ART, invece, è un sistema che quando installi una app prende il codice che dovrebbe girare nella dalvik e lo riconverte per il processore specifico che il tuo dispositivo possiede, quindi il codice dell'app non deve passare per la dalvik prima di essere eseguito effettivamente dal processore. Ovviamente cambiando processore cambierà versione di ART, ma questo per l'utente finale è trasparente.
Il prezzo da pagare è che in fase di installazione dell'app, questa deve essere rielaborata pesantemente da ART e quindi si allunga il tempo di installazione L'altro svantaggio è che la stessa app, dopo essere passata da ART risulta più pesante appunto per questa procedura di ricompilazione.