Figured it out - the assets needs to be loaded as a USkeletalMesh, and then casted to a UDestructibleMesh whenever that type is needed.
// Sets default values
ADestructibleBox::ADestructibleBox()
{
PrimaryActorTick.bCanEverTick = true;
// Create our UDestructibleComponent
UDestructibleComponent *destructible = NULL;
destructible = CreateDefaultSubobject<UDestructibleComponent>(TEXT("Destructible"));
destructible->SetCollisionEnabled(ECollisionEnabled::PhysicsOnly);
destructible->SetSimulatePhysics(true);
destructible->SetEnableGravity(false);
destructible->WakeRigidBody(NAME_None);
#define ASSET TEXT("/Game/MobileStarterContent/Shapes/Shape_Cube_DM.Shape_Cube_DM")
static ConstructorHelpers::FObjectFinder<USkeletalMesh> asset(ASSET);
#undef ASSET
if (asset.Succeeded())
{
UE_LOG(LogTemp, Log, TEXT("Asset loading succeeded."));
meshSkel = Cast<USkeletalMesh>(asset.Object);
meshDest = Cast<UDestructibleMesh>(meshSkel);
destructible->SetSkeletalMesh(meshSkel, true);
}
RootComponent = destructible;
}