Yes, data classes do support delegation. However it doesn’t make much sense to use a data class as the class which delegates to another class, whereas data class could be used as a delegation target.
// data class is ok here
data class NameHolder(override val name: String) : HasName
// shouldn't be a data class!
class Person(named : HasName) : HasName by named
val named = NameHolder("Amy")
val person = Person(named)
println(person.name) // Amy