G-code compatiblity with H-bridge L293d
The grblshield uses a drv8818 similar to the EasyStepper's A3967, in that they both generate the quadrature coding to their built in H-Bridge's to the motor's, from the inputs of direction and pulse. Hence they cost more. 

The adafruit shield uses the TB6612FNG which is similar to the L293D in that they are simply just an H-Bridge, which need the Arduino to generate the quadrature coding. 

Where you can buy any of the above chips not on shields, without the mark up.

The difficulty is that most arduino code that supports G code, are using the prior type of smart quadrature coding h-bridges. Where these smarter chip's also accommodate motor issues, like bias and thresholds, for the added minor cost. Which can be worth it.

I would recommend starting with AccelStepper Library to running multiple motor's with only H-Bridges and using the 

AccelStepper::AccelStepper  (   uint8_t     interface = AccelStepper::FULL4WIRE,
        uint8_t     pin1 = 2,
        uint8_t     pin2 = 3,
        uint8_t     pin3 = 4,
        uint8_t     pin4 = 5,
        bool    enable = true 
    )   


to define a full 4 wire H bridge.
However it does not directly support Gcode.