Python - accessing dictionary values for math operations
The reason is that ticker = (stocks[name]) is outside the if-statement. Since the loop does not stop when name == stock it continues to loop until the end of stocks and name will always be assigned to the last key in the dict.
One of multiple solutions is to move it within the if-statement:
shares = input('How many shares? ')
stock = input('What\'s the stock? ')

for name in stocks.keys():
    if name == stock:
        ticker = (stocks[name])
        print('The price for', stock, 'is', ticker)

amount = int(ticker) * int(shares)

print(amount)   

This gives:
How many shares? 10
What's the stock? FB
The price for FB is 255
2550

And you get the same output even without a loop:
shares = input('How many shares? ')
stock = input('What\'s the stock? ')

ticker = (stocks[stock])
print('The price for', stock, 'is', ticker)

amount = int(ticker) * int(shares)

print(amount) 

This gives:
How many shares? 10
What's the stock? FB
The price for FB is 255
2550