Вам нужно предоставить shell=True
для выполнения команды через интерпретатор оболочки. Если вы это сделаете, вы больше не сможете предоставлять список в качестве первого аргумента, потому что тогда будут переданы аргументы. Вместо этого укажите необработанную командную строку, которую вы хотите передать в оболочку:
proc = subprocess.Popen('ls *.bc', shell=True,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)