A diferença entre os códigos se dá por conta do atalho \b. Ele especifica um word boundary, isto é, um limite de palavra. Limite de palavra pode ser um espaço, pontuação, final de linha, começo do texto ou final do texto. Desse modo, a segunda expressão regular é mais específica do que a primeira, já que exige que o dígito esteja no começo de uma palavra. Veja os exemplos que ilustram a diferença:
Sem o \b:
>>> palavras = re.findall(r'(\d\w+)','2ois quatro oito 2ez d3z')
>>> palavras
['2ois', '2ez', '3z']
Com o \b:
>>> palavras = re.findall(r'(\b\d\w+)','2ois quatro oito 2ez d3z')
>>> palavras
['2ois', '2ez']