Ok. to understand why there is a drop in performance, consider how the connection is being handled.
In a normal transaction, a client connects directly to a server, handshakes a connection, and then starts getting data.
Client <–> MyCloud
In the case of the mycloud, since the IP addresses of both the client, and the target server (your mycloud) are unknown (dhcp being what it is and all, as well as the existence of stateful NAT firewalls), your Mycloud works through an intermediary that is known, as does the MyCloud App.
Client <–> WD Server <–>MyCloud
This is accomplished via a daemon that runs on the mycloud that connects to the WD server application platform, and identifies itself with a unique ID. (“Hey, I am MyCloud number BLAH BLAH BLAH! I am ready to receive access requests!”) Since the mycloud lives behind a NAT firewall (your router), it has to initiate this connection itself. WD cannot access it on demand from remote without this connection already being active. (research stateful connections)
Your client then connects with the known WD application server, and says “Hey, I want to talk with MyCloud number BLAH BLAH BLAH! I have these credentials, please connect me!”
The WD server then issues a challenge to the MyCloud it has connected to it, asking “Are these credentials good?” The connected Mycloud says “Yes, those are good credentials.” The WD server than says “Ok, Send me this file…” The mycloud sends that file to WD, and WD forwards that data to you.
This is because WD is functioning as if they were a VPN tunnel provider, using their proprietary (encrypted) protocol to transfer the data.
A more sensible way they could have done this, is to have the mycloud directly handshake with the remote client, by providing the mycloud with the remote client’s IP address, having the Mycloud initiate the handshake (since the outbound connection has to originate from the mycloud to establish the stateful socket connection through the nat firewall), and then have the two devices talk with each other directly and then cut out the WD middle man. That does not seem to be what WD decided to do though.
A proper test to see if this is the issue would be to create a port forwarding rule for the mycloud on your router (so that initiating connections can happen from outside and reliably reach the mycloud) for SSH (port 22), then try SFTP directly to the mycloud, and see what your speed is, vs using the mobile app.
I am discreetly suggesting that your bottleneck is the WD server farm that is brokering your connections.