2 stepper drivers speed control
Changing the duty cycle does not change the frequency of the PWM signal.
The tb6000 needs a pulse to trigger a step of the motor. If the frequency does not change the pulses per second do not change too and thus the speed is constant.
If you control just one motor the method of using delays to control the frequency works.
But in the case of two motors with different speed you need counter variables to immetate two frequencies (speeds) you need to control each speed of the motors.
First you caculate the ration of the speeds (you said y=1 and x=n steps. Then, the ratio is n:1, i.e the X Motor is faster then the Y Motor by factor n).
The following is just an incomplete example to explain my idea.
int cntX = 0;
int cntY = 0;

// I don't know you value n
// Let's say n=5
int ratioX = 5;
int ratioY = 1;

// One step per second at max speeed
// choose whatever fits your needs   
int delayForMaxSpeed = 1000;

const int stepPinX = 5; 
const int dirPinX = 2; 
const int stepPinY = 6; 
const int dirPinY = 3; 
const int enPin = 8;

void setup() 
{
  
  pinMode(stepPinX,OUTPUT); 
  pinMode(dirPinX,OUTPUT);
  pinMode( stepPinY, OUTPUT ); 
  pinMode( dirPinY, OUTPUT );

  pinMode( enPin, OUTPUT );
  digitalWrite( enPin, LOW );
  
}

void loop() 
{
  // Enables the motor to move in a particular direction
  digitalWrite( dirPin, HIGH ); 

  countx++; 
  county++;

  if ( countX &gt;= ratioX )
  {
     countX = 0;
     digitalWrite( stepPinX, HIGH ); 
  }

  if ( countY &gt;= ratioY )
  {
    countY = 0;
    digitalWrite( stepPinY, HIGH ); 
  }

  delayMicroseconds( 500 ); 

  digitalWrite( stepPinX, LOW ); 
  digitalWrite( stepPinY, LOW ); 

  delay( delayForMaxSpeed );
}