init.d doesn't get executed
Your SD card isn't prepared at the time that the bind command is executed, because the mounting process hasn't ended yet. To bind, you have to wait several seconds for the mounting of SD card &amp; external SD to be finished.

#!system/bin/sh    
sleep 10    
n="$(dumpsys mount | grep -c 'external')"    
until [ $n -eq 1 ]    
do    
sleep 1    
n="$(dumpsys mount | grep -c 'external')"    
done    
mount -o bind source target


Note: n="??" is changeable by according to your own system.